is geometry ever displaced by more than half a tile? If not, I sugest this:
Have a collision matrix that is completely separate from graphics beyond being initialized at the same time, it is probably best to have two bits of information for each tile, giving you for different kinds of tiles.
-Solid, for solid rock or some workshop tiles or other such 100% impassible things.
-Open air, for tiles that are completely empty and has no floor.
-pathable, for a tile with a floor or such, any place were a non-flying, non-swimming etc. creature could walk.
-partially blocked, for things like trees, statues, furniture, liquids, fortifications, or anything else were it is the slightest doubt is something could walk or where walking might be awkward.
For each of these, allow the user to set collisions on or of, as well as a speed. The speed is just what it sounds like, how fast the camera goes while inside the tile. if collisions are on, and the camera is WITHIN HALF A TILE OF the tile, the camera is puched strongly away from the impassable tile, meaning that for example in a single tile corridor the camera will follow a 1 dimensional line, and if you have colisions turned on for open air and walk outside it will work like a horizontal plane, etc.
one thing that might or might not be considered is also letting the user set some different things, say all the different buildings, to whatever of the 4 states they want through some init file, but that is probably not really necessary for something like this.
I have this thought up quite carefully in programming terms, but I think I haven't explained it very well here and might have made it sound more complicated than it is, if you are interested in actually using this for the visualizer but don't quite understand this explanation, just PM me saying what you are confused about and I'll make some pseudocode or something.
Also, you obviously don't have to follow this exactly or use the same names or such, this post is more a semi-vague gesture in the intended direction than a specific method of implementation on some things.