C'est en C#, parce que je suis un grand flemmard, et pour le moment ça fonctionne très bien.
Mais, parce que oui, il y a toujours un mais... Certaines maps ne fonctionnent pas.
Je m'explique: il y a deux types de maps dans Wow: les maps classiquent, dites ADT, et les autres, dites WDT.
La différence principale c'est que la map dite WDT ne contient pas de vertices à proprement parler, Blizzard spawn un objet appelé WMO et c'est ça qui sert de map.
L'intérêt c'est qu'au final toute la géométrie de l'instance (c'est utilisé uniquement pour les instances où on ne voit pas la skybox) est contenue dans un seul fichier: terrain, textures, objets (un WMO peut contenir des références vers des objets appelés M2 ou MDX, qui définit la géométrie d'une caisse, par exemple; un WMO miniature en fait).
Donc jusqu'à présent je ne chargeais que les maps de type ADT, parce que c'est beaucoup plus compliqué à traiter, mais après avoir implémenté le chargement des PNJs et des objets interactibles (les drapeaux de capture, les coffres, ce genre de conneries), je me suis dit que j'allais finalement m'attaquer aux WDT.
Après une première implémentation torchon ne fonctionnant pas, je finis par me connecter sur les serveurs officiels histoire de voir quelles sont les coordonnées exactes du WMO.
Surprise: au lieu d'utiliser les mêmes transformations que les WMO contenus dans les maps de type WDT, le WMO "global" de la map WDT en utilise d'autres. Une bonne heure de réflexion plus tard et c'est implémenté.
Je finis le code, je teste: rien ne s'affiche.
Bon, pas grave. Je reprend le code de zéro, et là miracle, j'ai bien de la géométrie à l'écran:

Je remarque que les coordonnées ne sont toujours pas correctes; je corrige, et je charge les PNJs pour voir.

Je fais quelques modifications sans aucun rapport (je vire du vieux code, bref, du nettoyage classique), commit, et je vais faire autre chose.
Je reviens 5h plus tard. Je modifie encore du code sans rapport; et comme les maps WDT chargent sensiblement plus vite que les ADT, je reteste dessus. Et là, je n'ai plus rien de géométrie.
Je revert à la commit où ça fonctionnait? Ça ne fonctionne plus...

Le pire, c'est qu'à coups de débuggeur, je vois très bien que le WMO est chargé en mémoire, et considéré comme dans le champ de vue de la caméra; simplement, il ne s'affiche pas.
Enfin, bon point: les PNJs apparaissent.