Our mdx files are generated by the ufomodel tool. It pre-calcuates normals and tangents to speed up model loading a bit. You can safely remove and recreate the mdx with the ufomodel tool.
It doesn't. Our talk over the IRC led me to investigate it again (forgot the previous results), and no, it does not store any normals. It is a bidirectional vertex<->index map for indexed representation of models, with duplicate vertices removed. And that's pretty much all. See the R_ModLoadMDX() for yourself -- it only processes the indices.
The game works without mdx-es fine.
It just recalculates it on every load by the O(n^2) algo with quite a big multiplier. See the R_ModCalcUniqueNormalsAndTangents(), which does NOT
exactly do what its name suggests. Normals get recalculated every frame anyway.
P.S.: Proper name should be something along the lines of R_ModFindSharedVerticesForReuse(), or something like it.