This is the specifications for the model file which is handled by the Game Extractor plugin Viewer_RESOURCES_2_BMD6MODEL.

Endian Order:Big Endian
Compression:none
Encryption:None


This format is used by the following Games:
RAGE *.bmd6model


This is the format specification information:
 
// HEADER
  4 - Header ((byte)25 + "6MM")
  4 - Unknown
  
  4 - Unknown Float (-16.0)
  4 - Unknown Float (-16.0)
  4 - Unknown Float (-16.0)
  4 - Unknown Float (16.0)
  4 - Unknown Float (16.0)
  4 - Unknown Float (16.0)

  4 - Unknown (1) (LITTLE ENDIAN)
  4 - null
  1 - Unknown (5)
  4 - Joints Directory Offset [+45]
  2 - Joints Directory Offset [+45]
  2 - Number of Joints (round to a multiple of 8 for reading the JOINTS directory)
  4 - Unknown
  2 - Pose Data Offset [+?]
  2 - Joint Hierarchy Offset [+?]
  
  X - Unknown
  
// JOINTS
  // for each joint
    4 - Joint Name Length (LITTLE ENDIAN)
    X - Joint Name
    
  // for each joint
    1 - Unknown
    
  // for each joint
    48 - Unknown

  4 - Unknown Float
  4 - Unknown Float
  4 - Unknown Float
  4 - Unknown Float
  4 - Unknown Float
  4 - Unknown Float
    
// MESHES
  4 - Number of Meshes
  
  // for each mesh
    4 - Mesh Name Length (LITTLE ENDIAN)
    X - Mesh Name
    4 - Material Name Length (LITTLE ENDIAN)
    X - Material Name
    1 - Unknown (1)
    4 - Number of Vertices
    4 - Number of Faces (Faces, not Face Indices)
    
    4 - Unknown Float
    4 - Unknown Float
    4 - Unknown Float
    4 - Unknown Float
    4 - Unknown Float
    4 - Unknown Float
    
  // VERTICES
    // for each vertex (32 bytes per entry)
      4 - Point X (Float)
      4 - Point Y (Float)
      4 - Point Z (Float)
      4 - Unknown Float
      4 - Unknown Float
      4 - Unknown Float
      4 - Unknown Float
      4 - Unknown Float
      
  // FACES
    // for each face
      2 - Face Index 1
      2 - Face Index 2
      2 - Face Index 3
      
  if (has more meshes){
    4 - null
    4 - Unknown
    1 - Unknown (0/1)
      
    if (1){
      // for each vertex
        4 - Unknown
      }
        
    4 - null
    }
    
// FOOTER
  4 - null
  4 - Unknown (1)
  8 - null
  1 - Number of Names
  
  // for each name
    4 - Mesh Name Length (LITTLE ENDIAN)
    X - Mesh Name
    4 - null
    4 - Unknown
    4 - Unknown
    
  4 - Header ((byte)25 + "6MM")


Game Extractor is able to read files of this type, as well as files from thousands of other games. To give it a try, download Game Extractor (Basic Version) for free, and see what it can do.

For further information on this format, refer to the source code on our GitHub repository.