Una investigación muy útil e impresionante, un trabajo magnífico, a ver si consigues entenderlo también en Fire Red.
Sobre lo que dijiste de los mapas, lo que se podría hacer es por ejemplo:
(No sé ASM, lo que te digo es con mis conocimientos de scripts normales)
Con scripts de nivel, al entrar en un determinado mapa comprobar en que mapa está el Pokémon (ya lo has predefinido antes en esa variable).
Y mediante un random, "seleccionar" uno de los mapas contiguos a dicho mapa. Y guardar en otra variable dicho mapa contiguo, al cambiar a otro mapa, usamos la variable del mapa contiguo y hacemos con lo que has explicado que el Pokémon en cuestión aparezca en dicho mapa contiguo, y así sucesivamente.
No sé si me he explicado bien, si no se entiende, lo puedo decir de otra forma ;)
PD: Bienvenido al foro.