I am trying to understand the file structure of the new FSX .mdl files for scenery objects (not for flying aircraft), starting with some simple models which I produced myself with GMax.
As far as I understand by now the mdl file consists of several sections, each starting with a four letter identifier followed by a DWORD length field, which gives the remaining length of the section, i.e. starting after the length field itself.
Some of theses sections are easy to understand:
- MDLH: contains the GUID for the object in hex format
- MDLN: contains the friendly name as a zero-terminated string
- PARA: still unknown
- CRAS: the crash box probably as octtree
- BBOX: 6 float values giving the bounding box (corresponding to the dimensions of the object)
- RADI: 1 float value (how this is calculated I do not understand)
- TEXT: textures used (here you can see that several of the MS library objects refer to non-existing textures or refer to a night map where they should have the standard texture
)
- MATE: giving the material
- INDE: index into the vertex list with three WORD values for each face to be drawn
- VERB: header for vertex list(s)
- VERT: vertex list. Each vertex is defined with three float values for the coordinates and three float values for the associated normal.
There are some more sections following which probably have to do with animation etc.
As far as I understand by now the mdl file consists of several sections, each starting with a four letter identifier followed by a DWORD length field, which gives the remaining length of the section, i.e. starting after the length field itself.
Some of theses sections are easy to understand:
- MDLH: contains the GUID for the object in hex format
- MDLN: contains the friendly name as a zero-terminated string
- PARA: still unknown
- CRAS: the crash box probably as octtree
- BBOX: 6 float values giving the bounding box (corresponding to the dimensions of the object)
- RADI: 1 float value (how this is calculated I do not understand)
- TEXT: textures used (here you can see that several of the MS library objects refer to non-existing textures or refer to a night map where they should have the standard texture
- MATE: giving the material
- INDE: index into the vertex list with three WORD values for each face to be drawn
- VERB: header for vertex list(s)
- VERT: vertex list. Each vertex is defined with three float values for the coordinates and three float values for the associated normal.
There are some more sections following which probably have to do with animation etc.

