Heh, heh - nasty one this, with all that slow collision detection. You could make an invisible matrix at the same height as your 3D model, if possible. Otherwise you might have to program your own mathematical collision; have fun!
In my game, Sherman (anybody heard of it?), I made a simple program that would run over each map I created. It would then create and save an array that contained solidity data for the map, which I could then use in the main program. There's probably better (and simpler) ways of doing it, but it worked for me and was VERY fast.
"I am a living, thinking entity who was created in the sea of information."