Heh, do you think I would have been working on organizing an active conversion for the past year and a half if it were that simple?

The w3d format is "forgiving" while the x file format isn't. If if such a utility existed, you'd have to manually tweak each and every source file anyway to account for transparent pngs and reflection/refraction maps.
I don't know how much you know about 3d modeling, but the max format is just the default save format for 3dsmax, NOTHING supports it really. It's the equivelent of a psd file, you convert it to something before you use it. A just like a psd doc in photoshop, it supports everything.
Now the x file supports textures, but they aren't stored in the x-file, rather they are called from a path specified in the file. There are ways to internalize the textures, but it becomes very difficult to parse the file then. The best way is to just zip the whole mess up.
Finally, while loading and rendering a 3d model is easy, actually doing something with it isn't. If you want to slap it in an ugly old picture box and move that around then it's easy to do, otherwise scaling and positioning the object across a 2d space when the object itself is actually in a 3d world is suprisingly difficult.
dk uses dx8 which merges d3d and ddraw. Everything is done with polys from dx8 on, which is a good thing as modern video cards handle 3d stuff better and thus it's faster. Tom wouldn't have the easiest job in the world as he'd have to build a 3d "engine" into gameEx. Tons of setup is involved just to get d3d up and running in dx7 and below. Now the actual rendering of the 3d object across the 2d fe... that is just a surface conversion as you said.