Szczególnie trudne wydaje się być wczytywanie gdy część potrzebnych danych jest w jednym pliku, a druga w drugim, żeby nie szukać każdego kafelka osobno (mam litość dla mojego procesora...).
Możesz lepiej określić co masz na myśli mówiąc o szukaniu danych / kafelków po plikach? Jeśli chcesz wczytać konkretny kafelek, to nie musisz niczego 'szukać', bo znając jego położenie wiesz dokładnie co i gdzie odczytać. Jeśli przez "część" danych masz na myśli to, że potrzebujesz tyle informacji żeby symulować grę w obszarach w których nie ma gracza (coś w rodzaju A-Life w STALKER-rze?), to siłą rzeczy będziesz musiał je wczytać już wcześniej i operować na nich w pamięci, a same obliczenia możesz rozłożyć w czasie, czy nawet przerzucić na inny wątek.
Jeśli natomiast martwisz się o to, że gracz może np. bardzo szybko zmieniać położenie, albo obiekty w grze mogą potrzebować danych z odległych obszarów, to masz parę wyjść. Na przykład jeśli region nie jest potrzebny graczowi, to zamiast od razu usuwać go z pamięci, oznaczasz go jako "nieaktywny". Jeśli jakiś obiekt będzie go potrzebował to może taki obszar przywrócić do życia bez konieczności doczytywania danych z dysku. Oczywiście trzeba nałożyć jakiś limit na ilość takich regionów i usuwać z pamięci te które nie były używane przez dłuższy czas. Sposób ten można zastosować do wszystkiego - regionów, obiektów, tekstur, plików dźwiękowych itd.
Możesz też umożliwić obiektom "blokowanie" regionów - jeśli jakiś element świata który nie jest graczem potrzebuje czasu aby wykonać swoje zadanie, blokuje on swój obszar niezależnie od położenia gracza, tym samym zabezpieczając go przed przedwczesnym usunięciem.