I could preload everything into Nexus. But as we all know, this very limited in case of big levels. So loading data from HDD is a good compromise for me.
Hence why I said streaming it in in the background. Or just use asynchronous I/O, and you don't even have to touch the threading stuff.
Seriously, try it with a cold filesystem cache and see if it's still a good trade-off to just load on demand.