Проблем несколько. Навскидку:
При простых разбивках не сделать многослойности. Я её для себя (в планах) решаю так. Если квадрат карты многослойный, то в него приписывается вместо 16-битной высоты особое число, указывающее на использование отдельного списка высот. Дальше ищем наиболее близкий к предыдущей высоте - его и используем.
Точность. 128 - это ОЧЕНЬ грубо. Мы либо на сможем близко подходить к стене (напомню, что средний радиус чаров - 10. Т.е. мы не сможем приближаться к препятствиям ближе, чем на 13 своих размеров!), даже сквозь двери не сможем проходить. Либо, если проходимость для таких квадратов устанавливать, то мобы смогут ходить сквозь тонкие стены.
Если получать геодату через DirectX - то всё ок. Если же записью прохождения игроков через заданные точки, то возникают неразрешимые, для меня пока, проблемы с расчётом прохождения "толстых" мобов. Того же Антареса. Он либо вообще ходить не сможет, либо, опять же, спокойно сможет уходить, например, до половины своего размера в стены
...
ИМХО, геодату нужно делать в виде набора объёмных плоских полигонов. В вырожденном случае - треугольников. Для аппроксимации таких полигонов, и, особенно - БЫСТРОЙ проверки пересечения границ и т.п., требуется высокий уровень знания стереометрии. Я пока таким не обладаю, я привык на плоскости жить пока