Model Types
                
					- 0: null - Dummy object without segments.
 
					- 1: geodynamic - Geometry with envelope and modifiers.
 
					- 2: cloth - Cloth (ClothGeometry segments).
 
					- 3: bone - Animated null.
 
					- 4: geobone - Animated geometry (only SegmentGeometry segments).
 
					- 5: geostatic - Standard geometry, no envelope or deformers.
 
					- 6: geoshadow - Shadow geometry (ShadowGeometry segments).
 
				
				File Structure and Naming Conventions
				MSH Name = name
				
				name.txt
				
                    bool has_shadowvolume: Does this MSH have a shadow volume (SHDW)?
				
				name nfo.txt
				
                    string name: Scene Name
                    float[2] frame_range: Start Frame, End Frame
                    float fps: Scene FPS
                    float[3] scale: Scene scale
                    BBox bbox: Scene BBox
                
                
                For every Model:
                name mdl model_name.txt
                
                    string name:
                        Model Name
                    string parent:
                        Parent Name
                    string model_type:
                        One of the available Model Types
                    int visible:
                        1 == visible, 0 == hidden
                    bool collprim:
                        Is this model a collision primitive?
                    [int, float, float, float] primitive:
                        Primitive type, value 0, value 1, value 2
                    int num_deformers:
                        Number of deformers on save, ignored when loading
                    string[] deformers:
                        Deformer names
                    BBox bbox:
                        Model BBox
                    Transform transform:
                        Model Transform
                
                For every segment (SEGM/CLTH/SHDW) in the models geometry:
                name mdl model_name seg #_of_segment.txt
                
                    SegmentGeometry:
                        string type:
                            SegmentGeometry | ShadowGeometry | ClothGeometry
                        string material:
                            Material name
                        int num_vertices:
                            Number of vertices on save, ignored when loading
                        Vertex[] vertices:
                            Segment vertices
                        int num_faces:
                            Number of faces on save, ignored when loading
                        Face[] faces:
                            Segment faces
                    ShadowGeometry:
                        string type:
                            See above
                        int num_positions:
                            Number of positions on save, ignored when loading
                        float[3][] positions:
                            Positions, currently only used to store the information
                        int num_faces:
                            Number of faces on save, ignored when loading
                        Face[] faces:
                            Faces, currently only used to store the information
                    ClothGeometry:
                        string type:
                            See above
                        string texture:
                            Cloth texture
                        int num_vertices:
                            Number of vertices on save, ignored when loading
                        ClothVertex[] vertices:
                            Cloth vertices
                        int num_faces:
                            Number of faces on save, ignored when loading
                        int[2][] stretch:
                            Stretch constraint value pairs
                        int[2][] cross:
                            Cross constraint value pairs
                        int[2][] bend:
                            Bend constraint value pairs
                        ClothCollision[] collisions:
                            Collisions
                
                
                For every Material:
                name mtl material_name.txt
                
                    string name:
                        Material name
                    int index:
                        Initial index on save, recalculated on load
                    string tex0:
                        Diffuse texture
                    string tex1:
                        Special texture 1
                    string tex2:
                        Special texture 2
                    string tex3:
                        Special texture 3
                    Flag[8] flags:
                        [string name, bool active, int enum_value]
                    int render_type:
                        Render type
                    int data0:
                        Shader data 0
                    int data1:
                        Shader data 1
                    Color diffuse:
                        Diffuse color
                    Color specular:
                        Specular color
                    Color ambient:
                        Ambient color
                    float gloss:
                        Gloss value
                
                BBox
                
                    float[3] rotation:
                        Rotation in degrees
                    float[3] extents:
                        BBox extents
                    float[3] center:
                        BBox center
                    float radius:
                        BBox radius
                
                Transform
                
                    float[3] rotation:
                        Rotation in degrees
                    float[3] position:
                        Position
                    float[3] sacle:
                        Scale
                
                Color
                
                    float[4] rgba:
                        Channel values (0.0 to 1.0)
                        OR
                    int[4] rgba:
                        Channel values (0 to 255)
                
                Vertex
                
                    float[3] position:
                        Position in world space
                    float[2] uv:
                        UV coordinate
                    float[3] normal:
                        Vertex normal
                    string[4] deformers:
                        Deformers for this vertex
                    float[4] weights:
                        Weights for the corresponding deformer
                    Color color:
                        Vertex color
                
                Face
                
                    int[] vertices:
                        Indices to the vertices forming this polygon
                
                ClothVertex
                
                    float[3] position:
                        Position in world space
                    float[2] uv:
                        UV coordinate
                    string deformer:
                        Joint this point moves with
                    bool is_fixed:
                        If true, does not get simulated and moves with deformer (if it exists)
                
                ClothCollision
                
                    string name:
                        Collision name
                    string parent:
                        Parent of the collision object
                    int unknown_long:
                        Unknown purpose
                    float[3] collision_primitive:
                        [value 0, value 1, value 2]