Ok, here's the pipeline I work with in gmax, and I'm pretty sure that it can be replicated in max3d.
Import:
MDL
use QMe to save it as
MD2
import into 3dsmax ( http://host-a.net/getfile.php?usern=Game_Genius&file=md2Importer.ms is a plugin for this step, which I haven't tried out)
MAX
I'm pretty sure that the mdl->md2 conversion doesn't do any harm, since in theory this conversion can be done exactly. If it turns out I'm wrong and it does wobble the vertices more, I'll probably write a quick program to do the conversion in this direction without the wobble. (*)
Export
MAX
export to MD3(there are loads of plugins which do this)
MD3
convert to MDL(I used to use quark for this, but since it's a pain to get working, I wrote http://www.btinternet.com/~chapterhonour/md3tomdl.zip for this step)
MDL
And the job is done.
_________________________
(*) I've moved the whole technical discussion from this post into a footnote. Ok, here's the deal with MD2. It still compresses vertex coordinates into a single byte like MDL, but the scale factor is slightly different. Instead of having one scale factor for the entire model, like quake 1 does, MD2 has a scale vector
per frame. This gives you more control, but is often counterproductive.
For example, you might look at your source model, calculate the bounding box of the vertices in each frame, and then use the corresponding scale per frame. This affords you as fine a grain resolution as one byte can carry in each frame. The problem is that it can create much greater "floaty vertex syndrome", because the grid that all of your vertices snap to is changing every frame. If you had a sequence where the arm of your character waves, but the body remains mostly still, then the body ends up wobbling as the extent of the arm is changing the size of the bounding box.
It could be argued that the MDL method has an equally bad problem, that vertices can end up not moving at all from one frame to the next if the movements are slight. But I'd disagree on two points there. One is that the motion is more regular in time for MDL, stop-starts is compensated for by the brain better than random noise is. The other is that MDL motion is more controlled in space - if the head is just bobbing up and down during this wave animation, the vertices won't move left to right in the MDL. However, if the arm is changing the width of the bounding box in MD2 then the head might wobble from side to side, and the rounding effect might even make vertices go in opposite directions as the grid changes, some left, so right (or worse, some up and some down!)
If you agreed with me, then you might try and write a more sophisticated MD2 exporter. It could first look through all the frames in a sequence, and try to create groups of frames where the bounding box stays within 10% of the max in the group. Then it would use the same bounding box for that whole group. You might even relate bounding box changes to the amount of movement in the whole model, rather than just changes in the limits.
In any case, I've been a bit dishonest there contrasting MDL to MD2 because you can exactly replicate MDL behaviour with an MD2. Just set the same scale in every frame in the model! This is why during the import, it should be safe to convert from MDL to MD2, no information should be lost. Of course, going the other way you can't get an exact replica of every MD2 as a MDL, which is why we have MD3 as the intermediate format in that direction.