From 29522654aa612cfa1970927a1ea61291b70569f0 Mon Sep 17 00:00:00 2001
From: Amorilia <amorilia@users.sourceforge.net>
Date: Sat, 3 Jun 2006 16:48:22 +0000
Subject: [PATCH] All includes should now be correct; also XML update.

---
 SConstruct                                 |  10 +-
 gen/AVObject.cpp                           |   2 +-
 gen/AVObject.h                             |   3 -
 gen/Bones.cpp                              |   2 +-
 gen/Bones.h                                |   3 -
 gen/BoundingBox.cpp                        |   2 +-
 gen/BoundingBox.h                          |   1 +
 gen/ByteArray.cpp                          |   2 +-
 gen/ByteArray.h                            |   1 +
 gen/ControllerLink.cpp                     |   6 +-
 gen/ControllerLink.h                       |   9 +-
 gen/Footer.cpp                             |   3 +-
 gen/Footer.h                               |   4 +-
 gen/FurniturePosition.cpp                  |   2 +-
 gen/FurniturePosition.h                    |   1 +
 gen/Header.cpp                             |   5 +-
 gen/Header.h                               |   2 -
 gen/KeyGroup.h                             |   1 +
 gen/LODRange.cpp                           |   2 +-
 gen/LODRange.h                             |   1 +
 gen/LimitedHingeDescriptor.cpp             |  10 +
 gen/LimitedHingeDescriptor.h               |  60 +++
 gen/MatchGroup.cpp                         |   2 +-
 gen/MatchGroup.h                           |   1 +
 gen/MipMap.cpp                             |   2 +-
 gen/MipMap.h                               |   1 +
 gen/Morph.cpp                              |   2 +-
 gen/Morph.h                                |   1 +
 gen/NodeGroup.cpp                          |   3 +-
 gen/NodeGroup.h                            |   4 +-
 gen/Particle.cpp                           |   2 +-
 gen/Particle.h                             |   1 +
 gen/QuaternionXYZW.cpp                     |   2 +-
 gen/QuaternionXYZW.h                       |   1 +
 gen/RagDollDescriptor.cpp                  |  10 +
 gen/RagDollDescriptor.h                    |  68 ++++
 gen/RotationKeyArray.h                     |   1 +
 gen/ShaderTexDesc.cpp                      |   3 +-
 gen/ShortString.cpp                        |   2 +-
 gen/ShortString.h                          |   1 +
 gen/SkinData.cpp                           |   3 +-
 gen/SkinPartition.cpp                      |   2 +-
 gen/SkinPartition.h                        |   1 +
 gen/SkinShape.cpp                          |   4 +-
 gen/SkinShape.h                            |   6 +-
 gen/SkinShapeGroup.cpp                     |   3 +-
 gen/SkinWeight.cpp                         |   2 +-
 gen/SkinWeight.h                           |   1 +
 gen/StringPalette.cpp                      |   2 +-
 gen/StringPalette.h                        |   1 +
 gen/TBC.cpp                                |   2 +-
 gen/TBC.h                                  |   1 +
 gen/TexDesc.cpp                            |   3 +-
 gen/TexDesc.h                              |   4 +-
 gen/TexSource.cpp                          |   4 +-
 gen/TexSource.h                            |   6 +-
 gen/hkTriangle.cpp                         |   2 +-
 gen/hkTriangle.h                           |   1 +
 gen/obj_defines.h                          | 422 ++++++---------------
 obj/ABoneLODController.cpp                 |   4 +-
 obj/ABoneLODController.h                   |   4 +-
 obj/AKeyedData.cpp                         |   2 +-
 obj/AKeyedData.h                           |   3 +-
 obj/APSysCtlr.cpp                          |   2 +-
 obj/APSysCtlr.h                            |   3 +-
 obj/APSysData.cpp                          |   2 +-
 obj/APSysData.h                            |   3 +-
 obj/AParticleModifier.cpp                  |   5 +-
 obj/AParticleModifier.h                    |   4 +-
 obj/AbhkConstraint.cpp                     |   4 +-
 obj/AbhkConstraint.h                       |   4 +-
 obj/AbhkRagdollConstraint.cpp              |   2 +-
 obj/AbhkRagdollConstraint.h                |   3 +-
 obj/AbhkShapeCollection.cpp                |   2 +-
 obj/AbhkShapeCollection.h                  |   3 +-
 obj/AvoidNode.cpp                          |   2 +-
 obj/AvoidNode.h                            |   3 +-
 obj/BSBound.cpp                            |   2 +-
 obj/BSBound.h                              |   3 +-
 obj/BSFurnitureMarker.cpp                  |   3 +-
 obj/BSFurnitureMarker.h                    |   4 +-
 obj/BSKeyframeController.cpp               |   3 +-
 obj/BSKeyframeController.h                 |   5 +-
 obj/BSPSysArrayEmitter.cpp                 |   2 +-
 obj/BSPSysArrayEmitter.h                   |   3 +-
 obj/BSParentVelocityModifier.cpp           |   2 +-
 obj/BSParentVelocityModifier.h             |   3 +-
 obj/BSXFlags.cpp                           |   2 +-
 obj/BSXFlags.h                             |   3 +-
 obj/FxButton.cpp                           |   2 +-
 obj/FxButton.h                             |   3 +-
 obj/FxRadioButton.cpp                      |   3 +-
 obj/FxRadioButton.h                        |   5 +-
 obj/FxWidget.cpp                           |   2 +-
 obj/FxWidget.h                             |   3 +-
 obj/NiAlphaController.cpp                  |   3 +-
 obj/NiAlphaController.h                    |   5 +-
 obj/NiAlphaProperty.cpp                    |   2 +-
 obj/NiAlphaProperty.h                      |   3 +-
 obj/NiAmbientLight.cpp                     |   2 +-
 obj/NiAmbientLight.h                       |   3 +-
 obj/NiAutoNormalParticles.cpp              |   2 +-
 obj/NiAutoNormalParticles.h                |   3 +-
 obj/NiAutoNormalParticlesData.cpp          |   2 +-
 obj/NiAutoNormalParticlesData.h            |   3 +-
 obj/NiBSAnimationNode.cpp                  |   2 +-
 obj/NiBSAnimationNode.h                    |   3 +-
 obj/NiBSBoneLODController.cpp              |   2 +-
 obj/NiBSBoneLODController.h                |   3 +-
 obj/NiBSPArrayController.cpp               |   2 +-
 obj/NiBSPArrayController.h                 |   3 +-
 obj/NiBSParticleNode.cpp                   |   2 +-
 obj/NiBSParticleNode.h                     |   3 +-
 obj/NiBSplineBasisData.cpp                 |   2 +-
 obj/NiBSplineBasisData.h                   |   3 +-
 obj/NiBSplineCompFloatInterpolator.cpp     |   2 +-
 obj/NiBSplineCompFloatInterpolator.h       |   3 +-
 obj/NiBSplineCompPoint3Interpolator.cpp    |   4 +-
 obj/NiBSplineCompPoint3Interpolator.h      |   6 +-
 obj/NiBSplineCompTransformInterpolator.cpp |   4 +-
 obj/NiBSplineCompTransformInterpolator.h   |   6 +-
 obj/NiBSplineData.cpp                      |   2 +-
 obj/NiBSplineData.h                        |   3 +-
 obj/NiBSplineInterpolator.cpp              |   2 +-
 obj/NiBSplineInterpolator.h                |   3 +-
 obj/NiBillboardNode.cpp                    |   2 +-
 obj/NiBillboardNode.h                      |   3 +-
 obj/NiBinaryExtraData.cpp                  |   3 +-
 obj/NiBinaryExtraData.h                    |   4 +-
 obj/NiBlendBoolInterpolator.cpp            |   2 +-
 obj/NiBlendBoolInterpolator.h              |   3 +-
 obj/NiBlendFloatInterpolator.cpp           |   2 +-
 obj/NiBlendFloatInterpolator.h             |   3 +-
 obj/NiBlendInterpolator.cpp                |   2 +-
 obj/NiBlendInterpolator.h                  |   3 +-
 obj/NiBlendPoint3Interpolator.cpp          |   2 +-
 obj/NiBlendPoint3Interpolator.h            |   3 +-
 obj/NiBlendTransformInterpolator.cpp       |   2 +-
 obj/NiBlendTransformInterpolator.h         |   3 +-
 obj/NiBoneLODController.cpp                |   7 +-
 obj/NiBoneLODController.h                  |   6 +-
 obj/NiBoolData.cpp                         |   3 +-
 obj/NiBoolData.h                           |   4 +-
 obj/NiBoolInterpolator.cpp                 |   3 +-
 obj/NiBoolInterpolator.h                   |   5 +-
 obj/NiBoolTimelineInterpolator.cpp         |   3 +-
 obj/NiBoolTimelineInterpolator.h           |   5 +-
 obj/NiBooleanExtraData.cpp                 |   2 +-
 obj/NiBooleanExtraData.h                   |   3 +-
 obj/NiCamera.cpp                           |   3 +-
 obj/NiCamera.h                             |   5 +-
 obj/NiCollisionData.cpp                    |   4 +-
 obj/NiCollisionData.h                      |   4 +-
 obj/NiCollisionObject.cpp                  |   5 +-
 obj/NiCollisionObject.h                    |   6 +-
 obj/NiColorData.cpp                        |   3 +-
 obj/NiColorData.h                          |   4 +-
 obj/NiColorExtraData.cpp                   |   2 +-
 obj/NiColorExtraData.h                     |   3 +-
 obj/NiControllerManager.cpp                |   4 +-
 obj/NiControllerManager.h                  |   6 +-
 obj/NiControllerSequence.cpp               |  12 +-
 obj/NiControllerSequence.h                 |   8 +-
 obj/NiDefaultAVObjectPalette.cpp           |   5 +-
 obj/NiDefaultAVObjectPalette.h             |   4 +-
 obj/NiDirectionalLight.cpp                 |   2 +-
 obj/NiDirectionalLight.h                   |   3 +-
 obj/NiDitherProperty.cpp                   |   2 +-
 obj/NiDitherProperty.h                     |   3 +-
 obj/NiDynamicEffect.cpp                    |   3 +-
 obj/NiDynamicEffect.h                      |   5 +-
 obj/NiExtraData.cpp                        |   3 +-
 obj/NiExtraData.h                          |   3 +-
 obj/NiFlipController.cpp                   |   3 +-
 obj/NiFlipController.h                     |   5 +-
 obj/NiFloatData.cpp                        |   3 +-
 obj/NiFloatData.h                          |   4 +-
 obj/NiFloatExtraData.cpp                   |   2 +-
 obj/NiFloatExtraData.h                     |   3 +-
 obj/NiFloatExtraDataController.cpp         |   3 +-
 obj/NiFloatExtraDataController.h           |   5 +-
 obj/NiFloatInterpolator.cpp                |   3 +-
 obj/NiFloatInterpolator.h                  |   5 +-
 obj/NiFloatsExtraData.cpp                  |   2 +-
 obj/NiFloatsExtraData.h                    |   3 +-
 obj/NiFogProperty.cpp                      |   2 +-
 obj/NiFogProperty.h                        |   3 +-
 obj/NiGeomMorpherController.cpp            |   4 +-
 obj/NiGeomMorpherController.h              |   6 +-
 obj/NiGravity.cpp                          |   2 +-
 obj/NiGravity.h                            |   3 +-
 obj/NiIntegerExtraData.cpp                 |   2 +-
 obj/NiIntegerExtraData.h                   |   3 +-
 obj/NiIntegersExtraData.cpp                |   2 +-
 obj/NiIntegersExtraData.h                  |   3 +-
 obj/NiInterpolator.cpp                     |   2 +-
 obj/NiInterpolator.h                       |   3 +-
 obj/NiKeyframeController.cpp               |   3 +-
 obj/NiKeyframeController.h                 |   5 +-
 obj/NiKeyframeData.cpp                     |   5 +-
 obj/NiKeyframeData.h                       |   4 +-
 obj/NiLODNode.cpp                          |   4 +-
 obj/NiLODNode.h                            |   6 +-
 obj/NiLight.cpp                            |   2 +-
 obj/NiLight.h                              |   3 +-
 obj/NiLightColorController.cpp             |   4 +-
 obj/NiLightColorController.h               |   6 +-
 obj/NiLightDimmerController.cpp            |   3 +-
 obj/NiLightDimmerController.h              |   5 +-
 obj/NiLookAtController.cpp                 |   3 +-
 obj/NiLookAtController.h                   |   5 +-
 obj/NiLookAtInterpolator.cpp               |   6 +-
 obj/NiLookAtInterpolator.h                 |   7 +-
 obj/NiMaterialColorController.cpp          |   3 +-
 obj/NiMaterialColorController.h            |   5 +-
 obj/NiMaterialProperty.cpp                 |   2 +-
 obj/NiMaterialProperty.h                   |   3 +-
 obj/NiMeshPSysData.cpp                     |   7 +-
 obj/NiMeshPSysData.h                       |   6 +-
 obj/NiMeshParticleSystem.cpp               |   2 +-
 obj/NiMeshParticleSystem.h                 |   3 +-
 obj/NiMorphData.cpp                        |   3 +-
 obj/NiMorphData.h                          |   4 +-
 obj/NiMultiTargetTransformController.cpp   |   4 +-
 obj/NiMultiTargetTransformController.h     |   4 +-
 obj/NiNode.cpp                             |   4 +-
 obj/NiNode.h                               |   6 +-
 obj/NiPSysAgeDeathModifier.cpp             |   3 +-
 obj/NiPSysAgeDeathModifier.h               |   5 +-
 obj/NiPSysBombModifier.cpp                 |   4 +-
 obj/NiPSysBombModifier.h                   |   4 +-
 obj/NiPSysBoundUpdateModifier.cpp          |   2 +-
 obj/NiPSysBoundUpdateModifier.h            |   3 +-
 obj/NiPSysBoxEmitter.cpp                   |   2 +-
 obj/NiPSysBoxEmitter.h                     |   3 +-
 obj/NiPSysColliderManager.cpp              |   3 +-
 obj/NiPSysColliderManager.h                |   5 +-
 obj/NiPSysColorModifier.cpp                |   3 +-
 obj/NiPSysColorModifier.h                  |   5 +-
 obj/NiPSysCylinderEmitter.cpp              |   2 +-
 obj/NiPSysCylinderEmitter.h                |   3 +-
 obj/NiPSysData.cpp                         |   2 +-
 obj/NiPSysData.h                           |   3 +-
 obj/NiPSysDragModifier.cpp                 |   4 +-
 obj/NiPSysDragModifier.h                   |   4 +-
 obj/NiPSysEmitter.cpp                      |   2 +-
 obj/NiPSysEmitter.h                        |   3 +-
 obj/NiPSysEmitterCtlr.cpp                  |   3 +-
 obj/NiPSysEmitterCtlr.h                    |   5 +-
 obj/NiPSysEmitterCtlrData.cpp              |   3 +-
 obj/NiPSysEmitterCtlrData.h                |   4 +-
 obj/NiPSysEmitterDeclinationCtlr.cpp       |   2 +-
 obj/NiPSysEmitterDeclinationCtlr.h         |   3 +-
 obj/NiPSysEmitterDeclinationVarCtlr.cpp    |   2 +-
 obj/NiPSysEmitterDeclinationVarCtlr.h      |   3 +-
 obj/NiPSysEmitterInitialRadiusCtlr.cpp     |   2 +-
 obj/NiPSysEmitterInitialRadiusCtlr.h       |   3 +-
 obj/NiPSysEmitterLifeSpanCtlr.cpp          |   2 +-
 obj/NiPSysEmitterLifeSpanCtlr.h            |   3 +-
 obj/NiPSysEmitterSpeedCtlr.cpp             |   2 +-
 obj/NiPSysEmitterSpeedCtlr.h               |   3 +-
 obj/NiPSysGravityModifier.cpp              |   4 +-
 obj/NiPSysGravityModifier.h                |   4 +-
 obj/NiPSysGravityStrengthCtlr.cpp          |   2 +-
 obj/NiPSysGravityStrengthCtlr.h            |   3 +-
 obj/NiPSysGrowFadeModifier.cpp             |   2 +-
 obj/NiPSysGrowFadeModifier.h               |   3 +-
 obj/NiPSysMeshEmitter.cpp                  |   3 +-
 obj/NiPSysMeshEmitter.h                    |   5 +-
 obj/NiPSysMeshUpdateModifier.cpp           |   3 +-
 obj/NiPSysMeshUpdateModifier.h             |   5 +-
 obj/NiPSysModifier.cpp                     |   4 +-
 obj/NiPSysModifier.h                       |   4 +-
 obj/NiPSysModifierActiveCtlr.cpp           |   2 +-
 obj/NiPSysModifierActiveCtlr.h             |   3 +-
 obj/NiPSysPlanarCollider.cpp               |   7 +-
 obj/NiPSysPlanarCollider.h                 |   8 +-
 obj/NiPSysPositionModifier.cpp             |   2 +-
 obj/NiPSysPositionModifier.h               |   3 +-
 obj/NiPSysResetOnLoopCtlr.cpp              |   2 +-
 obj/NiPSysResetOnLoopCtlr.h                |   3 +-
 obj/NiPSysRotationModifier.cpp             |   2 +-
 obj/NiPSysRotationModifier.h               |   3 +-
 obj/NiPSysSpawnModifier.cpp                |   2 +-
 obj/NiPSysSpawnModifier.h                  |   3 +-
 obj/NiPSysSphereEmitter.cpp                |   2 +-
 obj/NiPSysSphereEmitter.h                  |   3 +-
 obj/NiPSysUpdateCtlr.cpp                   |   2 +-
 obj/NiPSysUpdateCtlr.h                     |   3 +-
 obj/NiPSysVolumeEmitter.cpp                |   4 +-
 obj/NiPSysVolumeEmitter.h                  |   4 +-
 obj/NiPalette.cpp                          |   2 +-
 obj/NiPalette.h                            |   3 +-
 obj/NiParticleBomb.cpp                     |   2 +-
 obj/NiParticleBomb.h                       |   3 +-
 obj/NiParticleColorModifier.cpp            |   3 +-
 obj/NiParticleColorModifier.h              |   5 +-
 obj/NiParticleGrowFade.cpp                 |   2 +-
 obj/NiParticleGrowFade.h                   |   3 +-
 obj/NiParticleMeshModifier.cpp             |   3 +-
 obj/NiParticleMeshModifier.h               |   5 +-
 obj/NiParticleMeshes.cpp                   |   2 +-
 obj/NiParticleMeshes.h                     |   3 +-
 obj/NiParticleMeshesData.cpp               |   3 +-
 obj/NiParticleMeshesData.h                 |   5 +-
 obj/NiParticleRotation.cpp                 |   2 +-
 obj/NiParticleRotation.h                   |   3 +-
 obj/NiParticleSystem.cpp                   |   3 +-
 obj/NiParticleSystem.h                     |   5 +-
 obj/NiParticleSystemController.cpp         |   7 +-
 obj/NiParticleSystemController.h           |   7 +-
 obj/NiParticles.cpp                        |   2 +-
 obj/NiParticles.h                          |   3 +-
 obj/NiParticlesData.cpp                    |   2 +-
 obj/NiParticlesData.h                      |   3 +-
 obj/NiPathController.cpp                   |   4 +-
 obj/NiPathController.h                     |   6 +-
 obj/NiPathInterpolator.cpp                 |   4 +-
 obj/NiPathInterpolator.h                   |   6 +-
 obj/NiPixelData.cpp                        |   5 +-
 obj/NiPixelData.h                          |   7 +-
 obj/NiPlanarCollider.cpp                   |   2 +-
 obj/NiPlanarCollider.h                     |   3 +-
 obj/NiPoint3Interpolator.cpp               |   3 +-
 obj/NiPoint3Interpolator.h                 |   5 +-
 obj/NiPointLight.cpp                       |   2 +-
 obj/NiPointLight.h                         |   3 +-
 obj/NiPosData.cpp                          |   3 +-
 obj/NiPosData.h                            |   4 +-
 obj/NiProperty.cpp                         |   2 +-
 obj/NiProperty.h                           |   3 +-
 obj/NiRangeLODData.cpp                     |   3 +-
 obj/NiRangeLODData.h                       |   4 +-
 obj/NiRotatingParticles.cpp                |   2 +-
 obj/NiRotatingParticles.h                  |   3 +-
 obj/NiRotatingParticlesData.cpp            |   2 +-
 obj/NiRotatingParticlesData.h              |   3 +-
 obj/NiScreenLODData.cpp                    |   2 +-
 obj/NiScreenLODData.h                      |   3 +-
 obj/NiSequenceStreamHelper.cpp             |   2 +-
 obj/NiSequenceStreamHelper.h               |   3 +-
 obj/NiShadeProperty.cpp                    |   2 +-
 obj/NiShadeProperty.h                      |   3 +-
 obj/NiSingleInterpolatorController.cpp     |   3 +-
 obj/NiSingleInterpolatorController.h       |   5 +-
 obj/NiSkinData.cpp                         |   5 +-
 obj/NiSkinData.h                           |   6 +-
 obj/NiSkinInstance.cpp                     |   8 +-
 obj/NiSkinInstance.h                       |   8 +-
 obj/NiSkinPartition.cpp                    |   3 +-
 obj/NiSkinPartition.h                      |   4 +-
 obj/NiSourceTexture.cpp                    |   4 +-
 obj/NiSourceTexture.h                      |   6 +-
 obj/NiSpecularProperty.cpp                 |   2 +-
 obj/NiSpecularProperty.h                   |   3 +-
 obj/NiSphericalCollider.cpp                |   2 +-
 obj/NiSphericalCollider.h                  |   3 +-
 obj/NiSpotLight.cpp                        |   2 +-
 obj/NiSpotLight.h                          |   3 +-
 obj/NiStencilProperty.cpp                  |   2 +-
 obj/NiStencilProperty.h                    |   3 +-
 obj/NiStringExtraData.cpp                  |   2 +-
 obj/NiStringExtraData.h                    |   3 +-
 obj/NiStringPalette.cpp                    |   3 +-
 obj/NiStringPalette.h                      |   4 +-
 obj/NiStringsExtraData.cpp                 |   2 +-
 obj/NiStringsExtraData.h                   |   3 +-
 obj/NiTextKeyExtraData.cpp                 |   2 +-
 obj/NiTextKeyExtraData.h                   |   3 +-
 obj/NiTextureEffect.cpp                    |   3 +-
 obj/NiTextureEffect.h                      |   5 +-
 obj/NiTextureTransformController.cpp       |   3 +-
 obj/NiTextureTransformController.h         |   5 +-
 obj/NiTexturingProperty.cpp                |  21 +-
 obj/NiTexturingProperty.h                  |   5 +-
 obj/NiTimeController.cpp                   |   5 +-
 obj/NiTimeController.h                     |   4 +-
 obj/NiTransformController.cpp              |   2 +-
 obj/NiTransformController.h                |   3 +-
 obj/NiTransformData.cpp                    |   2 +-
 obj/NiTransformData.h                      |   3 +-
 obj/NiTransformInterpolator.cpp            |   3 +-
 obj/NiTransformInterpolator.h              |   5 +-
 obj/NiTriBasedGeom.cpp                     |   5 +-
 obj/NiTriBasedGeom.h                       |   7 +-
 obj/NiTriBasedGeomData.cpp                 |   3 +-
 obj/NiTriBasedGeomData.h                   |   5 +-
 obj/NiTriShape.cpp                         |   2 +-
 obj/NiTriShape.h                           |   3 +-
 obj/NiTriShapeData.cpp                     |   3 +-
 obj/NiTriShapeData.h                       |   4 +-
 obj/NiTriStrips.cpp                        |   2 +-
 obj/NiTriStrips.h                          |   3 +-
 obj/NiTriStripsData.cpp                    |   2 +-
 obj/NiTriStripsData.h                      |   3 +-
 obj/NiUVController.cpp                     |   3 +-
 obj/NiUVController.h                       |   5 +-
 obj/NiUVData.cpp                           |   3 +-
 obj/NiUVData.h                             |   4 +-
 obj/NiVectorExtraData.cpp                  |   2 +-
 obj/NiVectorExtraData.h                    |   3 +-
 obj/NiVertWeightsExtraData.cpp             |   2 +-
 obj/NiVertWeightsExtraData.h               |   3 +-
 obj/NiVertexColorProperty.cpp              |   2 +-
 obj/NiVertexColorProperty.h                |   3 +-
 obj/NiVisController.cpp                    |   3 +-
 obj/NiVisController.h                      |   5 +-
 obj/NiVisData.cpp                          |   2 +-
 obj/NiVisData.h                            |   3 +-
 obj/NiWireframeProperty.cpp                |   2 +-
 obj/NiWireframeProperty.h                  |   3 +-
 obj/NiZBufferProperty.cpp                  |   2 +-
 obj/NiZBufferProperty.h                    |   3 +-
 obj/RootCollisionNode.cpp                  |   2 +-
 obj/RootCollisionNode.h                    |   3 +-
 obj/bhkBlendCollisionObject.cpp            |   2 +-
 obj/bhkBlendCollisionObject.h              |   3 +-
 obj/bhkBlendController.cpp                 |   2 +-
 obj/bhkBlendController.h                   |   3 +-
 obj/bhkBoxShape.cpp                        |   2 +-
 obj/bhkBoxShape.h                          |   3 +-
 obj/bhkCapsuleShape.cpp                    |   2 +-
 obj/bhkCapsuleShape.h                      |   3 +-
 obj/bhkCollisionObject.cpp                 |   2 +-
 obj/bhkCollisionObject.h                   |   3 +-
 obj/bhkConvexShape.cpp                     |   2 +-
 obj/bhkConvexShape.h                       |   3 +-
 obj/bhkConvexTransformShape.cpp            |   2 +-
 obj/bhkConvexTransformShape.h              |   3 +-
 obj/bhkConvexVerticesShape.cpp             |   2 +-
 obj/bhkConvexVerticesShape.h               |   3 +-
 obj/bhkEntity.cpp                          |   3 +-
 obj/bhkEntity.h                            |   5 +-
 obj/bhkHingeConstraint.cpp                 |   2 +-
 obj/bhkHingeConstraint.h                   |   3 +-
 obj/bhkLimitedHingeConstraint.cpp          |   3 +-
 obj/bhkLimitedHingeConstraint.h            |   4 +-
 obj/bhkListShape.cpp                       |   3 +-
 obj/bhkListShape.h                         |   5 +-
 obj/bhkMalleableConstraint.cpp             |   6 +-
 obj/bhkMalleableConstraint.h               |   7 +-
 obj/bhkMoppBvTreeShape.cpp                 |   3 +-
 obj/bhkMoppBvTreeShape.h                   |   5 +-
 obj/bhkMultiSphereShape.cpp                |   2 +-
 obj/bhkMultiSphereShape.h                  |   3 +-
 obj/bhkNiTriStripsShape.cpp                |   3 +-
 obj/bhkNiTriStripsShape.h                  |   5 +-
 obj/bhkPackedNiTriStripsShape.cpp          |   3 +-
 obj/bhkPackedNiTriStripsShape.h            |   5 +-
 obj/bhkPrismaticConstraint.cpp             |   2 +-
 obj/bhkPrismaticConstraint.h               |   3 +-
 obj/bhkRagdollConstraint.cpp               |   2 +-
 obj/bhkRagdollConstraint.h                 |   3 +-
 obj/bhkRefObject.cpp                       |   2 +-
 obj/bhkRefObject.h                         |   3 +-
 obj/bhkRigidBody.cpp                       |   4 +-
 obj/bhkRigidBody.h                         |   6 +-
 obj/bhkRigidBodyT.cpp                      |   2 +-
 obj/bhkRigidBodyT.h                        |   3 +-
 obj/bhkSPCollisionObject.cpp               |   2 +-
 obj/bhkSPCollisionObject.h                 |   3 +-
 obj/bhkSerializable.cpp                    |   2 +-
 obj/bhkSerializable.h                      |   3 +-
 obj/bhkShape.cpp                           |   2 +-
 obj/bhkShape.h                             |   3 +-
 obj/bhkSimpleShapePhantom.cpp              |   2 +-
 obj/bhkSimpleShapePhantom.h                |   3 +-
 obj/bhkSphereRepShape.cpp                  |   2 +-
 obj/bhkSphereRepShape.h                    |   3 +-
 obj/bhkSphereShape.cpp                     |   2 +-
 obj/bhkSphereShape.h                       |   3 +-
 obj/bhkStiffSpringConstraint.cpp           |   2 +-
 obj/bhkStiffSpringConstraint.h             |   3 +-
 obj/bhkTransformShape.cpp                  |   2 +-
 obj/bhkTransformShape.h                    |   3 +-
 obj/bhkWorldObject.cpp                     |   2 +-
 obj/bhkWorldObject.h                       |   3 +-
 obj/hkPackedNiTriStripsData.cpp            |   3 +-
 obj/hkPackedNiTriStripsData.h              |   4 +-
 479 files changed, 1209 insertions(+), 914 deletions(-)
 create mode 100644 gen/LimitedHingeDescriptor.cpp
 create mode 100644 gen/LimitedHingeDescriptor.h
 create mode 100644 gen/RagDollDescriptor.cpp
 create mode 100644 gen/RagDollDescriptor.h

diff --git a/SConstruct b/SConstruct
index a1fad259..9d1bd35f 100644
--- a/SConstruct
+++ b/SConstruct
@@ -14,7 +14,7 @@ if sys.platform == 'linux2' or sys.platform == 'linux-i386':
     python_lib = ['python%d.%d' % sys.version_info[0:2]]
     python_libpath = [sysconfig.get_python_lib (0, 1) + '/config']
     python_include = [sysconfig.get_python_inc ()]
-    cppflags = '-fPIC -Wall -ggdb'
+    cppflags = '-fPIC -Wall'
 elif sys.platform == 'cygwin':
     python_lib = ['python%d.%d' % sys.version_info[0:2]]
     python_libpath = [sysconfig.get_python_lib (0, 1) + '/config']
@@ -31,10 +31,6 @@ else:
 
 env = Environment(ENV = os.environ)
 
-# force MD5 signatures to check for rebuilds
-
-SourceSignatures('MD5')
-
 # detect SWIG
 try:
     env['SWIG']
@@ -48,9 +44,9 @@ You can get it from http://www.swig.org/"""
 
 # build niflib and python wrapper
 
-objfiles = 'obj/NiObject.cpp obj/AKeyedData.cpp obj/AParticleModifier.cpp obj/bhkRefObject.cpp obj/bhkSerializable.cpp obj/AbhkConstraint.cpp obj/AbhkRagdollConstraint.cpp obj/bhkShape.cpp obj/AbhkShapeCollection.cpp obj/bhkSphereRepShape.cpp obj/bhkConvexShape.cpp obj/bhkWorldObject.cpp obj/bhkEntity.cpp obj/NiCollisionObject.cpp obj/NiExtraData.cpp obj/NiInterpolator.cpp obj/NiBlendInterpolator.cpp obj/NiBSplineInterpolator.cpp obj/NiObjectNET.cpp obj/NiAVObject.cpp obj/NiDynamicEffect.cpp obj/NiLight.cpp obj/NiProperty.cpp obj/NiPSysModifier.cpp obj/NiPSysEmitter.cpp obj/NiPSysVolumeEmitter.cpp obj/NiTimeController.cpp obj/ABoneLODController.cpp obj/NiSingleInterpolatorController.cpp obj/APSysCtlr.cpp obj/NiTriBasedGeom.cpp obj/NiTriBasedGeomData.cpp obj/APSysData.cpp obj/bhkBlendCollisionObject.cpp obj/bhkBlendController.cpp obj/bhkBoxShape.cpp obj/bhkCapsuleShape.cpp obj/bhkCollisionObject.cpp obj/bhkConvexVerticesShape.cpp obj/bhkHingeConstraint.cpp obj/bhkLimitedHingeConstraint.cpp obj/bhkListShape.cpp obj/bhkMalleableConstraint.cpp obj/bhkMoppBvTreeShape.cpp obj/bhkMultiSphereShape.cpp obj/bhkNiTriStripsShape.cpp obj/bhkPackedNiTriStripsShape.cpp obj/bhkPrismaticConstraint.cpp obj/bhkRagdollConstraint.cpp obj/bhkRigidBody.cpp obj/bhkRigidBodyT.cpp obj/bhkSimpleShapePhantom.cpp obj/bhkSPCollisionObject.cpp obj/bhkSphereShape.cpp obj/bhkStiffSpringConstraint.cpp obj/bhkTransformShape.cpp obj/bhkConvexTransformShape.cpp obj/BSBound.cpp obj/BSFurnitureMarker.cpp obj/BSParentVelocityModifier.cpp obj/BSPSysArrayEmitter.cpp obj/BSXFlags.cpp obj/hkPackedNiTriStripsData.cpp obj/NiAlphaController.cpp obj/NiAlphaProperty.cpp obj/NiAmbientLight.cpp obj/NiAutoNormalParticlesData.cpp obj/NiBinaryExtraData.cpp obj/NiBlendBoolInterpolator.cpp obj/NiBlendFloatInterpolator.cpp obj/NiBlendPoint3Interpolator.cpp obj/NiBlendTransformInterpolator.cpp obj/NiBoneLODController.cpp obj/NiBoolData.cpp obj/NiBooleanExtraData.cpp obj/NiBoolInterpolator.cpp obj/NiBoolTimelineInterpolator.cpp obj/NiBSBoneLODController.cpp obj/NiBSplineBasisData.cpp obj/NiBSplineCompFloatInterpolator.cpp obj/NiBSplineCompPoint3Interpolator.cpp obj/NiBSplineCompTransformInterpolator.cpp obj/NiBSplineData.cpp obj/NiCamera.cpp obj/NiCollisionData.cpp obj/NiColorData.cpp obj/NiColorExtraData.cpp obj/NiControllerManager.cpp obj/NiControllerSequence.cpp obj/NiDefaultAVObjectPalette.cpp obj/NiDirectionalLight.cpp obj/NiDitherProperty.cpp obj/NiFlipController.cpp obj/NiFloatData.cpp obj/NiFloatExtraData.cpp obj/NiFloatExtraDataController.cpp obj/NiFloatInterpolator.cpp obj/NiFloatsExtraData.cpp obj/NiFogProperty.cpp obj/NiGeomMorpherController.cpp obj/NiGravity.cpp obj/NiIntegerExtraData.cpp obj/NiIntegersExtraData.cpp obj/NiKeyframeController.cpp obj/BSKeyframeController.cpp obj/NiKeyframeData.cpp obj/NiLightColorController.cpp obj/NiLightDimmerController.cpp obj/NiLookAtController.cpp obj/NiLookAtInterpolator.cpp obj/NiMaterialColorController.cpp obj/NiMaterialProperty.cpp obj/NiMeshPSysData.cpp obj/NiMorphData.cpp obj/NiMultiTargetTransformController.cpp obj/NiNode.cpp obj/AvoidNode.cpp obj/FxWidget.cpp obj/FxButton.cpp obj/FxRadioButton.cpp obj/NiBillboardNode.cpp obj/NiBSAnimationNode.cpp obj/NiBSParticleNode.cpp obj/NiLODNode.cpp obj/NiPalette.cpp obj/NiParticleBomb.cpp obj/NiParticleColorModifier.cpp obj/NiParticleGrowFade.cpp obj/NiParticleMeshModifier.cpp obj/NiParticleRotation.cpp obj/NiParticles.cpp obj/NiAutoNormalParticles.cpp obj/NiParticleMeshes.cpp obj/NiParticlesData.cpp obj/NiParticleMeshesData.cpp obj/NiParticleSystem.cpp obj/NiMeshParticleSystem.cpp obj/NiParticleSystemController.cpp obj/NiBSPArrayController.cpp obj/NiPathController.cpp obj/NiPathInterpolator.cpp obj/NiPixelData.cpp obj/NiPlanarCollider.cpp obj/NiPoint3Interpolator.cpp obj/NiPointLight.cpp obj/NiPosData.cpp obj/NiPSysAgeDeathModifier.cpp obj/NiPSysBombModifier.cpp obj/NiPSysBoundUpdateModifier.cpp obj/NiPSysBoxEmitter.cpp obj/NiPSysColliderManager.cpp obj/NiPSysColorModifier.cpp obj/NiPSysCylinderEmitter.cpp obj/NiPSysData.cpp obj/NiPSysDragModifier.cpp obj/NiPSysEmitterCtlr.cpp obj/NiPSysEmitterCtlrData.cpp obj/NiPSysEmitterDeclinationCtlr.cpp obj/NiPSysEmitterDeclinationVarCtlr.cpp obj/NiPSysEmitterInitialRadiusCtlr.cpp obj/NiPSysEmitterLifeSpanCtlr.cpp obj/NiPSysEmitterSpeedCtlr.cpp obj/NiPSysGravityModifier.cpp obj/NiPSysGravityStrengthCtlr.cpp obj/NiPSysGrowFadeModifier.cpp obj/NiPSysMeshEmitter.cpp obj/NiPSysMeshUpdateModifier.cpp obj/NiPSysModifierActiveCtlr.cpp obj/NiPSysPlanarCollider.cpp obj/NiPSysPositionModifier.cpp obj/NiPSysResetOnLoopCtlr.cpp obj/NiPSysRotationModifier.cpp obj/NiPSysSpawnModifier.cpp obj/NiPSysSphereEmitter.cpp obj/NiPSysUpdateCtlr.cpp obj/NiRangeLODData.cpp obj/NiRotatingParticles.cpp obj/NiRotatingParticlesData.cpp obj/NiScreenLODData.cpp obj/NiSequenceStreamHelper.cpp obj/NiShadeProperty.cpp obj/NiSkinData.cpp obj/NiSkinInstance.cpp obj/NiSkinPartition.cpp obj/NiSourceTexture.cpp obj/NiSpecularProperty.cpp obj/NiSphericalCollider.cpp obj/NiSpotLight.cpp obj/NiStencilProperty.cpp obj/NiStringExtraData.cpp obj/NiStringPalette.cpp obj/NiStringsExtraData.cpp obj/NiTextKeyExtraData.cpp obj/NiTextureEffect.cpp obj/NiTextureTransformController.cpp obj/NiTexturingProperty.cpp obj/NiTransformController.cpp obj/NiTransformData.cpp obj/NiTransformInterpolator.cpp obj/NiTriShape.cpp obj/NiTriShapeData.cpp obj/NiTriStrips.cpp obj/NiTriStripsData.cpp obj/NiUVController.cpp obj/NiUVData.cpp obj/NiVectorExtraData.cpp obj/NiVertexColorProperty.cpp obj/NiVertWeightsExtraData.cpp obj/NiVisController.cpp obj/NiVisData.cpp obj/NiWireframeProperty.cpp obj/NiZBufferProperty.cpp obj/RootCollisionNode.cpp '
+objfiles = 'gen/Bones.cpp gen/ByteArray.cpp gen/Footer.cpp gen/LODRange.cpp gen/MatchGroup.cpp gen/MipMap.cpp gen/NodeGroup.cpp gen/QuaternionXYZW.cpp gen/ShortString.cpp gen/SkinShape.cpp gen/SkinShapeGroup.cpp gen/SkinWeight.cpp gen/AVObject.cpp gen/ControllerLink.cpp gen/Header.cpp gen/StringPalette.cpp gen/TBC.cpp gen/TexDesc.cpp gen/ShaderTexDesc.cpp gen/TexSource.cpp gen/SkinPartition.cpp gen/BoundingBox.cpp gen/FurniturePosition.cpp gen/hkTriangle.cpp gen/Morph.cpp gen/Particle.cpp gen/SkinData.cpp gen/RagDollDescriptor.cpp gen/LimitedHingeDescriptor.cpp obj/NiObject.cpp obj/AKeyedData.cpp obj/AParticleModifier.cpp obj/bhkRefObject.cpp obj/bhkSerializable.cpp obj/AbhkConstraint.cpp obj/AbhkRagdollConstraint.cpp obj/bhkShape.cpp obj/AbhkShapeCollection.cpp obj/bhkSphereRepShape.cpp obj/bhkConvexShape.cpp obj/bhkWorldObject.cpp obj/bhkEntity.cpp obj/NiCollisionObject.cpp obj/NiExtraData.cpp obj/NiInterpolator.cpp obj/NiBlendInterpolator.cpp obj/NiBSplineInterpolator.cpp obj/NiObjectNET.cpp obj/NiAVObject.cpp obj/NiDynamicEffect.cpp obj/NiLight.cpp obj/NiProperty.cpp obj/NiPSysModifier.cpp obj/NiPSysEmitter.cpp obj/NiPSysVolumeEmitter.cpp obj/NiTimeController.cpp obj/ABoneLODController.cpp obj/NiSingleInterpolatorController.cpp obj/APSysCtlr.cpp obj/NiTriBasedGeom.cpp obj/NiTriBasedGeomData.cpp obj/APSysData.cpp obj/bhkBlendCollisionObject.cpp obj/bhkBlendController.cpp obj/bhkBoxShape.cpp obj/bhkCapsuleShape.cpp obj/bhkCollisionObject.cpp obj/bhkConvexVerticesShape.cpp obj/bhkHingeConstraint.cpp obj/bhkLimitedHingeConstraint.cpp obj/bhkListShape.cpp obj/bhkMalleableConstraint.cpp obj/bhkMoppBvTreeShape.cpp obj/bhkMultiSphereShape.cpp obj/bhkNiTriStripsShape.cpp obj/bhkPackedNiTriStripsShape.cpp obj/bhkPrismaticConstraint.cpp obj/bhkRagdollConstraint.cpp obj/bhkRigidBody.cpp obj/bhkRigidBodyT.cpp obj/bhkSimpleShapePhantom.cpp obj/bhkSPCollisionObject.cpp obj/bhkSphereShape.cpp obj/bhkStiffSpringConstraint.cpp obj/bhkTransformShape.cpp obj/bhkConvexTransformShape.cpp obj/BSBound.cpp obj/BSFurnitureMarker.cpp obj/BSParentVelocityModifier.cpp obj/BSPSysArrayEmitter.cpp obj/BSXFlags.cpp obj/hkPackedNiTriStripsData.cpp obj/NiAlphaController.cpp obj/NiAlphaProperty.cpp obj/NiAmbientLight.cpp obj/NiAutoNormalParticlesData.cpp obj/NiBinaryExtraData.cpp obj/NiBlendBoolInterpolator.cpp obj/NiBlendFloatInterpolator.cpp obj/NiBlendPoint3Interpolator.cpp obj/NiBlendTransformInterpolator.cpp obj/NiBoneLODController.cpp obj/NiBoolData.cpp obj/NiBooleanExtraData.cpp obj/NiBoolInterpolator.cpp obj/NiBoolTimelineInterpolator.cpp obj/NiBSBoneLODController.cpp obj/NiBSplineBasisData.cpp obj/NiBSplineCompFloatInterpolator.cpp obj/NiBSplineCompPoint3Interpolator.cpp obj/NiBSplineCompTransformInterpolator.cpp obj/NiBSplineData.cpp obj/NiCamera.cpp obj/NiCollisionData.cpp obj/NiColorData.cpp obj/NiColorExtraData.cpp obj/NiControllerManager.cpp obj/NiControllerSequence.cpp obj/NiDefaultAVObjectPalette.cpp obj/NiDirectionalLight.cpp obj/NiDitherProperty.cpp obj/NiFlipController.cpp obj/NiFloatData.cpp obj/NiFloatExtraData.cpp obj/NiFloatExtraDataController.cpp obj/NiFloatInterpolator.cpp obj/NiFloatsExtraData.cpp obj/NiFogProperty.cpp obj/NiGeomMorpherController.cpp obj/NiGravity.cpp obj/NiIntegerExtraData.cpp obj/NiIntegersExtraData.cpp obj/NiKeyframeController.cpp obj/BSKeyframeController.cpp obj/NiKeyframeData.cpp obj/NiLightColorController.cpp obj/NiLightDimmerController.cpp obj/NiLookAtController.cpp obj/NiLookAtInterpolator.cpp obj/NiMaterialColorController.cpp obj/NiMaterialProperty.cpp obj/NiMeshPSysData.cpp obj/NiMorphData.cpp obj/NiMultiTargetTransformController.cpp obj/NiNode.cpp obj/AvoidNode.cpp obj/FxWidget.cpp obj/FxButton.cpp obj/FxRadioButton.cpp obj/NiBillboardNode.cpp obj/NiBSAnimationNode.cpp obj/NiBSParticleNode.cpp obj/NiLODNode.cpp obj/NiPalette.cpp obj/NiParticleBomb.cpp obj/NiParticleColorModifier.cpp obj/NiParticleGrowFade.cpp obj/NiParticleMeshModifier.cpp obj/NiParticleRotation.cpp obj/NiParticles.cpp obj/NiAutoNormalParticles.cpp obj/NiParticleMeshes.cpp obj/NiParticlesData.cpp obj/NiParticleMeshesData.cpp obj/NiParticleSystem.cpp obj/NiMeshParticleSystem.cpp obj/NiParticleSystemController.cpp obj/NiBSPArrayController.cpp obj/NiPathController.cpp obj/NiPathInterpolator.cpp obj/NiPixelData.cpp obj/NiPlanarCollider.cpp obj/NiPoint3Interpolator.cpp obj/NiPointLight.cpp obj/NiPosData.cpp obj/NiPSysAgeDeathModifier.cpp obj/NiPSysBombModifier.cpp obj/NiPSysBoundUpdateModifier.cpp obj/NiPSysBoxEmitter.cpp obj/NiPSysColliderManager.cpp obj/NiPSysColorModifier.cpp obj/NiPSysCylinderEmitter.cpp obj/NiPSysData.cpp obj/NiPSysDragModifier.cpp obj/NiPSysEmitterCtlr.cpp obj/NiPSysEmitterCtlrData.cpp obj/NiPSysEmitterDeclinationCtlr.cpp obj/NiPSysEmitterDeclinationVarCtlr.cpp obj/NiPSysEmitterInitialRadiusCtlr.cpp obj/NiPSysEmitterLifeSpanCtlr.cpp obj/NiPSysEmitterSpeedCtlr.cpp obj/NiPSysGravityModifier.cpp obj/NiPSysGravityStrengthCtlr.cpp obj/NiPSysGrowFadeModifier.cpp obj/NiPSysMeshEmitter.cpp obj/NiPSysMeshUpdateModifier.cpp obj/NiPSysModifierActiveCtlr.cpp obj/NiPSysPlanarCollider.cpp obj/NiPSysPositionModifier.cpp obj/NiPSysResetOnLoopCtlr.cpp obj/NiPSysRotationModifier.cpp obj/NiPSysSpawnModifier.cpp obj/NiPSysSphereEmitter.cpp obj/NiPSysUpdateCtlr.cpp obj/NiRangeLODData.cpp obj/NiRotatingParticles.cpp obj/NiRotatingParticlesData.cpp obj/NiScreenLODData.cpp obj/NiSequenceStreamHelper.cpp obj/NiShadeProperty.cpp obj/NiSkinData.cpp obj/NiSkinInstance.cpp obj/NiSkinPartition.cpp obj/NiSourceTexture.cpp obj/NiSpecularProperty.cpp obj/NiSphericalCollider.cpp obj/NiSpotLight.cpp obj/NiStencilProperty.cpp obj/NiStringExtraData.cpp obj/NiStringPalette.cpp obj/NiStringsExtraData.cpp obj/NiTextKeyExtraData.cpp obj/NiTextureEffect.cpp obj/NiTextureTransformController.cpp obj/NiTexturingProperty.cpp obj/NiTransformController.cpp obj/NiTransformData.cpp obj/NiTransformInterpolator.cpp obj/NiTriShape.cpp obj/NiTriShapeData.cpp obj/NiTriStrips.cpp obj/NiTriStripsData.cpp obj/NiUVController.cpp obj/NiUVData.cpp obj/NiVectorExtraData.cpp obj/NiVertexColorProperty.cpp obj/NiVertWeightsExtraData.cpp obj/NiVisController.cpp obj/NiVisData.cpp obj/NiWireframeProperty.cpp obj/NiZBufferProperty.cpp obj/RootCollisionNode.cpp '
 
-niflib = env.StaticLibrary('niflib', Split('niflib.cpp nif_math.cpp NIF_IO.cpp kfm.cpp docsys_extract.cpp obj/Type.cpp ' + objfiles), CPPPATH = '.', CPPFLAGS = cppflags)
+niflib = env.StaticLibrary('niflib', Split('niflib.cpp nif_math.cpp NIF_IO.cpp kfm.cpp Type.cpp gen/obj_factories.cpp ' + objfiles), CPPPATH = '.', CPPFLAGS = cppflags)
 #nifshlib = env.SharedLibrary('_niflib', 'pyniflib.i', LIBS=['niflib'] + python_lib, LIBPATH=['.'] + python_libpath, SWIGFLAGS = '-c++ -python', CPPPATH = ['.'] + python_include, CPPFLAGS = cppflags, SHLIBPREFIX='')
 # makes sure niflib.lib is built before trying to build _niflib.dll
 #env.Depends(nifshlib, niflib)
diff --git a/gen/AVObject.cpp b/gen/AVObject.cpp
index a0729763..87c360f0 100644
--- a/gen/AVObject.cpp
+++ b/gen/AVObject.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "AVObject.h"
+#include "gen/AVObject.h"
 #include "obj/NiAVObject.h"
 
 //Constructor
diff --git a/gen/AVObject.h b/gen/AVObject.h
index ac8f31d1..1b3e9359 100644
--- a/gen/AVObject.h
+++ b/gen/AVObject.h
@@ -5,9 +5,6 @@ All rights reserved.  Please see niflib.h for licence. */
 #define _AVOBJECT_H_
 
 #include "NIF_IO.h"
-#include "Ref.h"
-
-//Forward Declarations
 class NiAVObject;
 
 /*!
diff --git a/gen/Bones.cpp b/gen/Bones.cpp
index 21fd250c..8df625fc 100644
--- a/gen/Bones.cpp
+++ b/gen/Bones.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "Bones.h"
+#include "gen/Bones.h"
 #include "obj/NiNode.h"
 
 //Constructor
diff --git a/gen/Bones.h b/gen/Bones.h
index 4c7b56f2..a90e2d0a 100644
--- a/gen/Bones.h
+++ b/gen/Bones.h
@@ -5,9 +5,6 @@ All rights reserved.  Please see niflib.h for licence. */
 #define _BONES_H_
 
 #include "NIF_IO.h"
-#include "Ref.h"
-
-//Forward Declarations
 class NiNode;
 
 /*!
diff --git a/gen/BoundingBox.cpp b/gen/BoundingBox.cpp
index b3608db7..11e19c63 100644
--- a/gen/BoundingBox.cpp
+++ b/gen/BoundingBox.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "BoundingBox.h"
+#include "gen/BoundingBox.h"
 
 //Constructor
 BoundingBox::BoundingBox() : unknownInt((uint)1) {};
diff --git a/gen/BoundingBox.h b/gen/BoundingBox.h
index da33d0da..e60dd8fc 100644
--- a/gen/BoundingBox.h
+++ b/gen/BoundingBox.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * Bounding box.
  */
diff --git a/gen/ByteArray.cpp b/gen/ByteArray.cpp
index 4c40b477..99f8f6e3 100644
--- a/gen/ByteArray.cpp
+++ b/gen/ByteArray.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "ByteArray.h"
+#include "gen/ByteArray.h"
 
 //Constructor
 ByteArray::ByteArray() : dataSize((uint)0), unknownInt((uint)0) {};
diff --git a/gen/ByteArray.h b/gen/ByteArray.h
index 070829b5..b33a27c1 100644
--- a/gen/ByteArray.h
+++ b/gen/ByteArray.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * An array of bytes.
  */
diff --git a/gen/ControllerLink.cpp b/gen/ControllerLink.cpp
index a5f0f556..407aa0fb 100644
--- a/gen/ControllerLink.cpp
+++ b/gen/ControllerLink.cpp
@@ -1,11 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "ControllerLink.h"
-#include "obj/NiInterpolator.h"
-#include "obj/NiObject.h"
-#include "obj/NiObject.h"
-#include "obj/NiStringPalette.h"
+#include "gen/ControllerLink.h"
 
 //Constructor
 ControllerLink::ControllerLink() : interpolator(NULL), unknownLink1(NULL), unknownLink2(NULL), unknownShort0((ushort)0), priority_((byte)0), stringPalette(NULL), nodeNameOffset((uint)0), propertyTypeOffset((uint)0), controllerTypeOffset((uint)0), variableOffset1((uint)0), variableOffset2((uint)0) {};
diff --git a/gen/ControllerLink.h b/gen/ControllerLink.h
index 2879343f..0b10c26e 100644
--- a/gen/ControllerLink.h
+++ b/gen/ControllerLink.h
@@ -6,12 +6,9 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 #include "Ref.h"
-
-//Forward Declarations
-class NiInterpolator;
-class NiObject;
-class NiObject;
-class NiStringPalette;
+#include "obj/NiInterpolator.h"
+#include "obj/NiObject.h"
+#include "obj/NiStringPalette.h"
 
 /*!
  * In a .kf file, this links to a controllable block, via its name (or
diff --git a/gen/Footer.cpp b/gen/Footer.cpp
index 021be3a5..334d8128 100644
--- a/gen/Footer.cpp
+++ b/gen/Footer.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "Footer.h"
-#include "obj/NiAVObject.h"
+#include "gen/Footer.h"
 
 //Constructor
 Footer::Footer() : numRoots((uint)0) {};
diff --git a/gen/Footer.h b/gen/Footer.h
index 768e3345..ece18602 100644
--- a/gen/Footer.h
+++ b/gen/Footer.h
@@ -6,9 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 #include "Ref.h"
-
-//Forward Declarations
-class NiAVObject;
+#include "obj/NiAVObject.h"
 
 /*!
  * The NIF file footer.
diff --git a/gen/FurniturePosition.cpp b/gen/FurniturePosition.cpp
index 157e5e63..d1361c7d 100644
--- a/gen/FurniturePosition.cpp
+++ b/gen/FurniturePosition.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "FurniturePosition.h"
+#include "gen/FurniturePosition.h"
 
 //Constructor
 FurniturePosition::FurniturePosition() : unknownShort((ushort)0), positionRef1_((byte)0), positionRef2_((byte)0) {};
diff --git a/gen/FurniturePosition.h b/gen/FurniturePosition.h
index e345b892..a9bade19 100644
--- a/gen/FurniturePosition.h
+++ b/gen/FurniturePosition.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * Describes a furniture position?
  */
diff --git a/gen/Header.cpp b/gen/Header.cpp
index 0ddc730f..cdc6e0b3 100644
--- a/gen/Header.cpp
+++ b/gen/Header.cpp
@@ -1,7 +1,10 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "Header.h"
+#include "gen/Header.h"
+#include "gen/ShortString.h"
+#include "gen/ShortString.h"
+#include "gen/ShortString.h"
 
 //Constructor
 Header::Header() : version((uint)0x04000002), endianType((byte)1), userVersion((uint)0), numBlocks((uint)0), unknownInt1((uint)0), unknownInt3((uint)0), numBlockTypes((ushort)0), unknownInt2((uint)0) {};
diff --git a/gen/Header.h b/gen/Header.h
index 64a77580..d761429b 100644
--- a/gen/Header.h
+++ b/gen/Header.h
@@ -6,8 +6,6 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 #include "gen/ShortString.h"
-#include "gen/ShortString.h"
-#include "gen/ShortString.h"
 
 /*!
  * The NIF file header.
diff --git a/gen/KeyGroup.h b/gen/KeyGroup.h
index 402cfce1..7c8374b8 100644
--- a/gen/KeyGroup.h
+++ b/gen/KeyGroup.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * Array of vector keys (anything that can be interpolated, except
  * rotations).
diff --git a/gen/LODRange.cpp b/gen/LODRange.cpp
index 2e6d9101..b66633db 100644
--- a/gen/LODRange.cpp
+++ b/gen/LODRange.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "LODRange.h"
+#include "gen/LODRange.h"
 
 //Constructor
 LODRange::LODRange() : near(0.0f), far(0.0f) {};
diff --git a/gen/LODRange.h b/gen/LODRange.h
index dc251ab2..da4100e7 100644
--- a/gen/LODRange.h
+++ b/gen/LODRange.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * The distance range where a specific level of detail applies.
  */
diff --git a/gen/LimitedHingeDescriptor.cpp b/gen/LimitedHingeDescriptor.cpp
new file mode 100644
index 00000000..12c61d0d
--- /dev/null
+++ b/gen/LimitedHingeDescriptor.cpp
@@ -0,0 +1,10 @@
+/* Copyright (c) 2006, NIF File Format Library and Tools
+All rights reserved.  Please see niflib.h for licence. */
+
+#include "gen/LimitedHingeDescriptor.h"
+
+//Constructor
+LimitedHingeDescriptor::LimitedHingeDescriptor() : minAngle(0.0f), maxAngle(0.0f), maxFriction(0.0f) {};
+
+//Destructor
+LimitedHingeDescriptor::~LimitedHingeDescriptor() {};
diff --git a/gen/LimitedHingeDescriptor.h b/gen/LimitedHingeDescriptor.h
new file mode 100644
index 00000000..c9ddb033
--- /dev/null
+++ b/gen/LimitedHingeDescriptor.h
@@ -0,0 +1,60 @@
+/* Copyright (c) 2006, NIF File Format Library and Tools
+All rights reserved.  Please see niflib.h for licence. */
+
+#ifndef _LIMITEDHINGEDESCRIPTOR_H_
+#define _LIMITEDHINGEDESCRIPTOR_H_
+
+#include "NIF_IO.h"
+
+
+/*!
+ * 
+ */
+struct LimitedHingeDescriptor {
+  /*! Default Constructor */
+  LimitedHingeDescriptor();
+  /*! Default Destructor */
+  ~LimitedHingeDescriptor();
+  /*!
+   * Unknown.
+   */
+  Float4 pivotA;
+  /*!
+   * Unknown.
+   */
+  Float4 axleA_;
+  /*!
+   * Unknown.
+   */
+  Float4 perp2axleina1;
+  /*!
+   * Unknown.
+   */
+  Float4 perp2axleina2;
+  /*!
+   * Unknown.
+   */
+  Float4 pivotB;
+  /*!
+   * Unknown.
+   */
+  Float4 axleB;
+  /*!
+   * Unknown.
+   */
+  Float4 unknownVector;
+  /*!
+   * Unknown.
+   */
+  float minAngle;
+  /*!
+   * Unknown.
+   */
+  float maxAngle;
+  /*!
+   * Unknown.
+   */
+  float maxFriction;
+};
+
+#endif
diff --git a/gen/MatchGroup.cpp b/gen/MatchGroup.cpp
index 58b46937..d7215d19 100644
--- a/gen/MatchGroup.cpp
+++ b/gen/MatchGroup.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "MatchGroup.h"
+#include "gen/MatchGroup.h"
 
 //Constructor
 MatchGroup::MatchGroup() : numVertices((ushort)0) {};
diff --git a/gen/MatchGroup.h b/gen/MatchGroup.h
index 1402d327..309f3081 100644
--- a/gen/MatchGroup.h
+++ b/gen/MatchGroup.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * Group of vertex indices of vertices that match.
  */
diff --git a/gen/MipMap.cpp b/gen/MipMap.cpp
index cd673a56..762b3968 100644
--- a/gen/MipMap.cpp
+++ b/gen/MipMap.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "MipMap.h"
+#include "gen/MipMap.h"
 
 //Constructor
 MipMap::MipMap() : width((uint)0), height((uint)0), offset((uint)0) {};
diff --git a/gen/MipMap.h b/gen/MipMap.h
index f069585f..d4cebc3b 100644
--- a/gen/MipMap.h
+++ b/gen/MipMap.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * Description of a MipMap within a NiPixelData block.
  */
diff --git a/gen/Morph.cpp b/gen/Morph.cpp
index ef314ed6..3dd16552 100644
--- a/gen/Morph.cpp
+++ b/gen/Morph.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "Morph.h"
+#include "gen/Morph.h"
 
 //Constructor
 Morph::Morph() : numMorphKeys((uint)0), morphInterpolation((KeyType)0), unknownInt((uint)0) {};
diff --git a/gen/Morph.h b/gen/Morph.h
index 02d1abd4..34d42103 100644
--- a/gen/Morph.h
+++ b/gen/Morph.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * Geometry morphing data component.
  */
diff --git a/gen/NodeGroup.cpp b/gen/NodeGroup.cpp
index db83353f..bc1eea03 100644
--- a/gen/NodeGroup.cpp
+++ b/gen/NodeGroup.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NodeGroup.h"
-#include "obj/NiNode.h"
+#include "gen/NodeGroup.h"
 
 //Constructor
 NodeGroup::NodeGroup() : numNodes((uint)0) {};
diff --git a/gen/NodeGroup.h b/gen/NodeGroup.h
index a6de42fa..40112fe6 100644
--- a/gen/NodeGroup.h
+++ b/gen/NodeGroup.h
@@ -6,9 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 #include "Ref.h"
-
-//Forward Declarations
-class NiNode;
+#include "obj/NiNode.h"
 
 /*!
  * A group of NiNodes references.
diff --git a/gen/Particle.cpp b/gen/Particle.cpp
index 5ba5c457..962f92c0 100644
--- a/gen/Particle.cpp
+++ b/gen/Particle.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "Particle.h"
+#include "gen/Particle.h"
 
 //Constructor
 Particle::Particle() : lifetime(0.0f), lifespan(0.0f), timestamp(0.0f), unknownShort((ushort)0), vertexId((ushort)0) {};
diff --git a/gen/Particle.h b/gen/Particle.h
index 4cb3eecd..95d3372e 100644
--- a/gen/Particle.h
+++ b/gen/Particle.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * particle array entry
  */
diff --git a/gen/QuaternionXYZW.cpp b/gen/QuaternionXYZW.cpp
index 36b23acb..a0a163ea 100644
--- a/gen/QuaternionXYZW.cpp
+++ b/gen/QuaternionXYZW.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "QuaternionXYZW.h"
+#include "gen/QuaternionXYZW.h"
 
 //Constructor
 QuaternionXYZW::QuaternionXYZW() : x(0.0f), y(0.0f), z(0.0f), w(0.0f) {};
diff --git a/gen/QuaternionXYZW.h b/gen/QuaternionXYZW.h
index daf6063b..e2e71840 100644
--- a/gen/QuaternionXYZW.h
+++ b/gen/QuaternionXYZW.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * A quaternion as it appears in the havok blocks.
  */
diff --git a/gen/RagDollDescriptor.cpp b/gen/RagDollDescriptor.cpp
new file mode 100644
index 00000000..02878c42
--- /dev/null
+++ b/gen/RagDollDescriptor.cpp
@@ -0,0 +1,10 @@
+/* Copyright (c) 2006, NIF File Format Library and Tools
+All rights reserved.  Please see niflib.h for licence. */
+
+#include "gen/RagDollDescriptor.h"
+
+//Constructor
+RagDollDescriptor::RagDollDescriptor() : coneMinAngle(0.0f), planeMinAngle(0.0f), planeMaxAngle(0.0f), twistMinAngle(0.0f), twistMaxAngle(0.0f), maxFriction(0.0f) {};
+
+//Destructor
+RagDollDescriptor::~RagDollDescriptor() {};
diff --git a/gen/RagDollDescriptor.h b/gen/RagDollDescriptor.h
new file mode 100644
index 00000000..26ec387a
--- /dev/null
+++ b/gen/RagDollDescriptor.h
@@ -0,0 +1,68 @@
+/* Copyright (c) 2006, NIF File Format Library and Tools
+All rights reserved.  Please see niflib.h for licence. */
+
+#ifndef _RAGDOLLDESCRIPTOR_H_
+#define _RAGDOLLDESCRIPTOR_H_
+
+#include "NIF_IO.h"
+
+
+/*!
+ * 
+ */
+struct RagDollDescriptor {
+  /*! Default Constructor */
+  RagDollDescriptor();
+  /*! Default Destructor */
+  ~RagDollDescriptor();
+  /*!
+   * Unknown.
+   */
+  Float4 pivotA;
+  /*!
+   * Unknown.
+   */
+  Float4 planeA;
+  /*!
+   * Unknown.
+   */
+  Float4 twistA;
+  /*!
+   * Unknown.
+   */
+  Float4 pivotB;
+  /*!
+   * Unknown.
+   */
+  Float4 planeB;
+  /*!
+   * Unknown.
+   */
+  Float4 twistB;
+  /*!
+   * Unknown.
+   */
+  float coneMinAngle;
+  /*!
+   * Unknown.
+   */
+  float planeMinAngle;
+  /*!
+   * Unknown.
+   */
+  float planeMaxAngle;
+  /*!
+   * Unknown.
+   */
+  float twistMinAngle;
+  /*!
+   * Unknown.
+   */
+  float twistMaxAngle;
+  /*!
+   * Unknown.
+   */
+  float maxFriction;
+};
+
+#endif
diff --git a/gen/RotationKeyArray.h b/gen/RotationKeyArray.h
index 22474fb6..55d94d4d 100644
--- a/gen/RotationKeyArray.h
+++ b/gen/RotationKeyArray.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * Rotation key array.
  */
diff --git a/gen/ShaderTexDesc.cpp b/gen/ShaderTexDesc.cpp
index e4e27ad9..5dfdb116 100644
--- a/gen/ShaderTexDesc.cpp
+++ b/gen/ShaderTexDesc.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "ShaderTexDesc.h"
+#include "gen/ShaderTexDesc.h"
+#include "gen/TexDesc.h"
 
 //Constructor
 ShaderTexDesc::ShaderTexDesc() : isUsed(false), unknownInt((uint)0) {};
diff --git a/gen/ShortString.cpp b/gen/ShortString.cpp
index 79d34596..c8babec2 100644
--- a/gen/ShortString.cpp
+++ b/gen/ShortString.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "ShortString.h"
+#include "gen/ShortString.h"
 
 //Constructor
 ShortString::ShortString() : length((byte)0) {};
diff --git a/gen/ShortString.h b/gen/ShortString.h
index 4ea77d9b..fca724d6 100644
--- a/gen/ShortString.h
+++ b/gen/ShortString.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * Another string format, for short strings.  Specific to Bethesda-
  * specific header tags.
diff --git a/gen/SkinData.cpp b/gen/SkinData.cpp
index 0bfeb9bc..901acfa1 100644
--- a/gen/SkinData.cpp
+++ b/gen/SkinData.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "SkinData.h"
+#include "gen/SkinData.h"
+#include "gen/SkinWeight.h"
 
 //Constructor
 SkinData::SkinData() : scale(0.0f), numVertices((ushort)0) {};
diff --git a/gen/SkinPartition.cpp b/gen/SkinPartition.cpp
index 7ac08c81..881b9512 100644
--- a/gen/SkinPartition.cpp
+++ b/gen/SkinPartition.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "SkinPartition.h"
+#include "gen/SkinPartition.h"
 
 //Constructor
 SkinPartition::SkinPartition() : numVertices((ushort)0), numTriangles((ushort)0), numBones((ushort)0), numStrips((ushort)0), numWeightsPerVertex((ushort)0), hasVertexMap(false), hasVertexWeights(false), hasStrips(false), hasBoneIndices(false) {};
diff --git a/gen/SkinPartition.h b/gen/SkinPartition.h
index 0e0ed88d..c6507379 100644
--- a/gen/SkinPartition.h
+++ b/gen/SkinPartition.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * Skinning data for a submesh, optimized for hardware skinning. Part of
  * NiSkinPartition.
diff --git a/gen/SkinShape.cpp b/gen/SkinShape.cpp
index f548711c..29ff9dab 100644
--- a/gen/SkinShape.cpp
+++ b/gen/SkinShape.cpp
@@ -1,9 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "SkinShape.h"
-#include "obj/NiTriShape.h"
-#include "obj/NiSkinInstance.h"
+#include "gen/SkinShape.h"
 
 //Constructor
 SkinShape::SkinShape() : shape(NULL), skinInstance(NULL) {};
diff --git a/gen/SkinShape.h b/gen/SkinShape.h
index 2da3de91..e413576c 100644
--- a/gen/SkinShape.h
+++ b/gen/SkinShape.h
@@ -6,10 +6,8 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 #include "Ref.h"
-
-//Forward Declarations
-class NiTriShape;
-class NiSkinInstance;
+#include "obj/NiTriShape.h"
+#include "obj/NiSkinInstance.h"
 
 /*!
  * Reference to shape and skin instance.
diff --git a/gen/SkinShapeGroup.cpp b/gen/SkinShapeGroup.cpp
index ff7b2b2c..8f6b5eb5 100644
--- a/gen/SkinShapeGroup.cpp
+++ b/gen/SkinShapeGroup.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "SkinShapeGroup.h"
+#include "gen/SkinShapeGroup.h"
+#include "gen/SkinShape.h"
 
 //Constructor
 SkinShapeGroup::SkinShapeGroup() : numLinkPairs((uint)0) {};
diff --git a/gen/SkinWeight.cpp b/gen/SkinWeight.cpp
index bb35f75d..05f8c899 100644
--- a/gen/SkinWeight.cpp
+++ b/gen/SkinWeight.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "SkinWeight.h"
+#include "gen/SkinWeight.h"
 
 //Constructor
 SkinWeight::SkinWeight() : index((ushort)0), weight(0.0f) {};
diff --git a/gen/SkinWeight.h b/gen/SkinWeight.h
index 0863dfec..65dfdef9 100644
--- a/gen/SkinWeight.h
+++ b/gen/SkinWeight.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * A weighted vertex.
  */
diff --git a/gen/StringPalette.cpp b/gen/StringPalette.cpp
index 4eeee30e..e3ceb240 100644
--- a/gen/StringPalette.cpp
+++ b/gen/StringPalette.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "StringPalette.h"
+#include "gen/StringPalette.h"
 
 //Constructor
 StringPalette::StringPalette() : length((uint)0) {};
diff --git a/gen/StringPalette.h b/gen/StringPalette.h
index 3d81b8be..f0dfb798 100644
--- a/gen/StringPalette.h
+++ b/gen/StringPalette.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * A list of \\0 terminated strings.
  */
diff --git a/gen/TBC.cpp b/gen/TBC.cpp
index b11f4c33..293f36fb 100644
--- a/gen/TBC.cpp
+++ b/gen/TBC.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "TBC.h"
+#include "gen/TBC.h"
 
 //Constructor
 TBC::TBC() : t(0.0f), b(0.0f), c(0.0f) {};
diff --git a/gen/TBC.h b/gen/TBC.h
index 9566fb10..c6e2f8bd 100644
--- a/gen/TBC.h
+++ b/gen/TBC.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * Tension, bias, continuity.
  */
diff --git a/gen/TexDesc.cpp b/gen/TexDesc.cpp
index 00dc165d..f0d06272 100644
--- a/gen/TexDesc.cpp
+++ b/gen/TexDesc.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "TexDesc.h"
-#include "obj/NiSourceTexture.h"
+#include "gen/TexDesc.h"
 
 //Constructor
 TexDesc::TexDesc() : source(NULL), clampMode((TexClampMode)WRAP_S_WRAP_T), filterMode((TexFilterMode)FILTER_TRILERP), textureSet((uint)0), ps2L((ushort)0), ps2K((ushort)0xFFB5), unknown1((ushort)0), hasTextureTransform(false), wRotation(0.0f), transformType_((uint)0) {};
diff --git a/gen/TexDesc.h b/gen/TexDesc.h
index 0d924a17..5a5f7e27 100644
--- a/gen/TexDesc.h
+++ b/gen/TexDesc.h
@@ -6,9 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 #include "Ref.h"
-
-//Forward Declarations
-class NiSourceTexture;
+#include "obj/NiSourceTexture.h"
 
 /*!
  * Texture description.
diff --git a/gen/TexSource.cpp b/gen/TexSource.cpp
index 10838fe0..abed273f 100644
--- a/gen/TexSource.cpp
+++ b/gen/TexSource.cpp
@@ -1,9 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "TexSource.h"
-#include "obj/NiObject.h"
-#include "obj/NiPixelData.h"
+#include "gen/TexSource.h"
 
 //Constructor
 TexSource::TexSource() : useExternal((byte)0), unknownLink(NULL), unknownByte((byte)0), pixelData(NULL) {};
diff --git a/gen/TexSource.h b/gen/TexSource.h
index b0c7b23d..e9c9933c 100644
--- a/gen/TexSource.h
+++ b/gen/TexSource.h
@@ -6,10 +6,8 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 #include "Ref.h"
-
-//Forward Declarations
-class NiObject;
-class NiPixelData;
+#include "obj/NiObject.h"
+#include "obj/NiPixelData.h"
 
 /*!
  * A texture source.
diff --git a/gen/hkTriangle.cpp b/gen/hkTriangle.cpp
index e6c99c45..3639d402 100644
--- a/gen/hkTriangle.cpp
+++ b/gen/hkTriangle.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "hkTriangle.h"
+#include "gen/hkTriangle.h"
 
 //Constructor
 hkTriangle::hkTriangle() : unknownShort((ushort)0) {};
diff --git a/gen/hkTriangle.h b/gen/hkTriangle.h
index cd6fb832..940cf9ff 100644
--- a/gen/hkTriangle.h
+++ b/gen/hkTriangle.h
@@ -6,6 +6,7 @@ All rights reserved.  Please see niflib.h for licence. */
 
 #include "NIF_IO.h"
 
+
 /*!
  * A triangle with extra data used for physics.
  */
diff --git a/gen/obj_defines.h b/gen/obj_defines.h
index 17c00890..a9afab44 100644
--- a/gen/obj_defines.h
+++ b/gen/obj_defines.h
@@ -13,250 +13,6 @@ All rights reserved.  Please see niflib.h for licence. */
 
 using namespace std;
 
-#include "gen/Bones.h"
-#include "gen/ByteArray.h"
-#include "gen/Footer.h"
-#include "gen/LODRange.h"
-#include "gen/MatchGroup.h"
-#include "gen/MipMap.h"
-#include "gen/NodeGroup.h"
-#include "gen/QuaternionXYZW.h"
-#include "gen/ShortString.h"
-#include "gen/SkinShape.h"
-#include "gen/SkinShapeGroup.h"
-#include "gen/SkinWeight.h"
-#include "gen/AVObject.h"
-#include "gen/ControllerLink.h"
-#include "gen/Header.h"
-#include "gen/StringPalette.h"
-#include "gen/TBC.h"
-#include "gen/KeyGroup.h"
-#include "gen/RotationKeyArray.h"
-#include "gen/TexDesc.h"
-#include "gen/ShaderTexDesc.h"
-#include "gen/TexSource.h"
-#include "gen/SkinPartition.h"
-#include "gen/BoundingBox.h"
-#include "gen/FurniturePosition.h"
-#include "gen/hkTriangle.h"
-#include "gen/Morph.h"
-#include "gen/Particle.h"
-#include "gen/SkinData.h"
-
-class NiObject;
-class AKeyedData;
-class AParticleModifier;
-class bhkRefObject;
-class bhkSerializable;
-class AbhkConstraint;
-class AbhkRagdollConstraint;
-class bhkShape;
-class AbhkShapeCollection;
-class bhkSphereRepShape;
-class bhkConvexShape;
-class bhkWorldObject;
-class bhkEntity;
-class NiCollisionObject;
-class NiExtraData;
-class NiInterpolator;
-class NiBlendInterpolator;
-class NiBSplineInterpolator;
-class NiObjectNET;
-class NiAVObject;
-class NiDynamicEffect;
-class NiLight;
-class NiProperty;
-class NiPSysModifier;
-class NiPSysEmitter;
-class NiPSysVolumeEmitter;
-class NiTimeController;
-class ABoneLODController;
-class NiSingleInterpolatorController;
-class APSysCtlr;
-class NiTriBasedGeom;
-class NiTriBasedGeomData;
-class APSysData;
-class bhkBlendCollisionObject;
-class bhkBlendController;
-class bhkBoxShape;
-class bhkCapsuleShape;
-class bhkCollisionObject;
-class bhkConvexVerticesShape;
-class bhkHingeConstraint;
-class bhkLimitedHingeConstraint;
-class bhkListShape;
-class bhkMalleableConstraint;
-class bhkMoppBvTreeShape;
-class bhkMultiSphereShape;
-class bhkNiTriStripsShape;
-class bhkPackedNiTriStripsShape;
-class bhkPrismaticConstraint;
-class bhkRagdollConstraint;
-class bhkRigidBody;
-class bhkRigidBodyT;
-class bhkSimpleShapePhantom;
-class bhkSPCollisionObject;
-class bhkSphereShape;
-class bhkStiffSpringConstraint;
-class bhkTransformShape;
-class bhkConvexTransformShape;
-class BSBound;
-class BSFurnitureMarker;
-class BSParentVelocityModifier;
-class BSPSysArrayEmitter;
-class BSXFlags;
-class hkPackedNiTriStripsData;
-class NiAlphaController;
-class NiAlphaProperty;
-class NiAmbientLight;
-class NiAutoNormalParticlesData;
-class NiBinaryExtraData;
-class NiBlendBoolInterpolator;
-class NiBlendFloatInterpolator;
-class NiBlendPoint3Interpolator;
-class NiBlendTransformInterpolator;
-class NiBoneLODController;
-class NiBoolData;
-class NiBooleanExtraData;
-class NiBoolInterpolator;
-class NiBoolTimelineInterpolator;
-class NiBSBoneLODController;
-class NiBSplineBasisData;
-class NiBSplineCompFloatInterpolator;
-class NiBSplineCompPoint3Interpolator;
-class NiBSplineCompTransformInterpolator;
-class NiBSplineData;
-class NiCamera;
-class NiCollisionData;
-class NiColorData;
-class NiColorExtraData;
-class NiControllerManager;
-class NiControllerSequence;
-class NiDefaultAVObjectPalette;
-class NiDirectionalLight;
-class NiDitherProperty;
-class NiFlipController;
-class NiFloatData;
-class NiFloatExtraData;
-class NiFloatExtraDataController;
-class NiFloatInterpolator;
-class NiFloatsExtraData;
-class NiFogProperty;
-class NiGeomMorpherController;
-class NiGravity;
-class NiIntegerExtraData;
-class NiIntegersExtraData;
-class NiKeyframeController;
-class BSKeyframeController;
-class NiKeyframeData;
-class NiLightColorController;
-class NiLightDimmerController;
-class NiLookAtController;
-class NiLookAtInterpolator;
-class NiMaterialColorController;
-class NiMaterialProperty;
-class NiMeshPSysData;
-class NiMorphData;
-class NiMultiTargetTransformController;
-class NiNode;
-class AvoidNode;
-class FxWidget;
-class FxButton;
-class FxRadioButton;
-class NiBillboardNode;
-class NiBSAnimationNode;
-class NiBSParticleNode;
-class NiLODNode;
-class NiPalette;
-class NiParticleBomb;
-class NiParticleColorModifier;
-class NiParticleGrowFade;
-class NiParticleMeshModifier;
-class NiParticleRotation;
-class NiParticles;
-class NiAutoNormalParticles;
-class NiParticleMeshes;
-class NiParticlesData;
-class NiParticleMeshesData;
-class NiParticleSystem;
-class NiMeshParticleSystem;
-class NiParticleSystemController;
-class NiBSPArrayController;
-class NiPathController;
-class NiPathInterpolator;
-class NiPixelData;
-class NiPlanarCollider;
-class NiPoint3Interpolator;
-class NiPointLight;
-class NiPosData;
-class NiPSysAgeDeathModifier;
-class NiPSysBombModifier;
-class NiPSysBoundUpdateModifier;
-class NiPSysBoxEmitter;
-class NiPSysColliderManager;
-class NiPSysColorModifier;
-class NiPSysCylinderEmitter;
-class NiPSysData;
-class NiPSysDragModifier;
-class NiPSysEmitterCtlr;
-class NiPSysEmitterCtlrData;
-class NiPSysEmitterDeclinationCtlr;
-class NiPSysEmitterDeclinationVarCtlr;
-class NiPSysEmitterInitialRadiusCtlr;
-class NiPSysEmitterLifeSpanCtlr;
-class NiPSysEmitterSpeedCtlr;
-class NiPSysGravityModifier;
-class NiPSysGravityStrengthCtlr;
-class NiPSysGrowFadeModifier;
-class NiPSysMeshEmitter;
-class NiPSysMeshUpdateModifier;
-class NiPSysModifierActiveCtlr;
-class NiPSysPlanarCollider;
-class NiPSysPositionModifier;
-class NiPSysResetOnLoopCtlr;
-class NiPSysRotationModifier;
-class NiPSysSpawnModifier;
-class NiPSysSphereEmitter;
-class NiPSysUpdateCtlr;
-class NiRangeLODData;
-class NiRotatingParticles;
-class NiRotatingParticlesData;
-class NiScreenLODData;
-class NiSequenceStreamHelper;
-class NiShadeProperty;
-class NiSkinData;
-class NiSkinInstance;
-class NiSkinPartition;
-class NiSourceTexture;
-class NiSpecularProperty;
-class NiSphericalCollider;
-class NiSpotLight;
-class NiStencilProperty;
-class NiStringExtraData;
-class NiStringPalette;
-class NiStringsExtraData;
-class NiTextKeyExtraData;
-class NiTextureEffect;
-class NiTextureTransformController;
-class NiTexturingProperty;
-class NiTransformController;
-class NiTransformData;
-class NiTransformInterpolator;
-class NiTriShape;
-class NiTriShapeData;
-class NiTriStrips;
-class NiTriStripsData;
-class NiUVController;
-class NiUVData;
-class NiVectorExtraData;
-class NiVertexColorProperty;
-class NiVertWeightsExtraData;
-class NiVisController;
-class NiVisData;
-class NiWireframeProperty;
-class NiZBufferProperty;
-class RootCollisionNode;
-
 #define NI_OBJECT_MEMBERS \
 
 #define NI_OBJECT_INCLUDE ".h" \
@@ -2273,31 +2029,57 @@ return out.str(); \
 AbhkConstraint::FixLinks( objects, link_stack, version ); \
 
 #define BHK_LIMITED_HINGE_CONSTRAINT_MEMBERS \
-uint unknownInt; \
+LimitedHingeDescriptor limitedHinge; \
 
-#define BHK_LIMITED_HINGE_CONSTRAINT_INCLUDE "AbhkRagdollConstraint.h" \
+#define BHK_LIMITED_HINGE_CONSTRAINT_INCLUDE "AbhkConstraint.h" \
 
-#define BHK_LIMITED_HINGE_CONSTRAINT_PARENT AbhkRagdollConstraint \
+#define BHK_LIMITED_HINGE_CONSTRAINT_PARENT AbhkConstraint \
 
 #define BHK_LIMITED_HINGE_CONSTRAINT_CONSTRUCT \
- : unknownInt((uint)0) \
 
 #define BHK_LIMITED_HINGE_CONSTRAINT_READ \
-AbhkRagdollConstraint::Read( in, link_stack, version ); \
-NifStream( unknownInt, in, version ); \
+AbhkConstraint::Read( in, link_stack, version ); \
+NifStream( limitedHinge.pivotA, in, version ); \
+NifStream( limitedHinge.axleA_, in, version ); \
+NifStream( limitedHinge.perp2axleina1, in, version ); \
+NifStream( limitedHinge.perp2axleina2, in, version ); \
+NifStream( limitedHinge.pivotB, in, version ); \
+NifStream( limitedHinge.axleB, in, version ); \
+NifStream( limitedHinge.unknownVector, in, version ); \
+NifStream( limitedHinge.minAngle, in, version ); \
+NifStream( limitedHinge.maxAngle, in, version ); \
+NifStream( limitedHinge.maxFriction, in, version ); \
 
 #define BHK_LIMITED_HINGE_CONSTRAINT_WRITE \
-AbhkRagdollConstraint::Write( out, link_map, version ); \
-NifStream( unknownInt, out, version ); \
+AbhkConstraint::Write( out, link_map, version ); \
+NifStream( limitedHinge.pivotA, out, version ); \
+NifStream( limitedHinge.axleA_, out, version ); \
+NifStream( limitedHinge.perp2axleina1, out, version ); \
+NifStream( limitedHinge.perp2axleina2, out, version ); \
+NifStream( limitedHinge.pivotB, out, version ); \
+NifStream( limitedHinge.axleB, out, version ); \
+NifStream( limitedHinge.unknownVector, out, version ); \
+NifStream( limitedHinge.minAngle, out, version ); \
+NifStream( limitedHinge.maxAngle, out, version ); \
+NifStream( limitedHinge.maxFriction, out, version ); \
 
 #define BHK_LIMITED_HINGE_CONSTRAINT_STRING \
 stringstream out; \
-out << AbhkRagdollConstraint::asString(); \
-out << "Unknown Int:  " << unknownInt << endl; \
+out << AbhkConstraint::asString(); \
+out << "Pivot A:  " << limitedHinge.pivotA << endl; \
+out << "Axle A ?:  " << limitedHinge.axleA_ << endl; \
+out << "Perp2AxleInA1:  " << limitedHinge.perp2axleina1 << endl; \
+out << "Perp2AxleInA2:  " << limitedHinge.perp2axleina2 << endl; \
+out << "Pivot B:  " << limitedHinge.pivotB << endl; \
+out << "Axle B:  " << limitedHinge.axleB << endl; \
+out << "Unknown Vector:  " << limitedHinge.unknownVector << endl; \
+out << "Min Angle:  " << limitedHinge.minAngle << endl; \
+out << "Max Angle:  " << limitedHinge.maxAngle << endl; \
+out << "Max Friction:  " << limitedHinge.maxFriction << endl; \
 return out.str(); \
 
 #define BHK_LIMITED_HINGE_CONSTRAINT_FIXLINKS \
-AbhkRagdollConstraint::FixLinks( objects, link_stack, version ); \
+AbhkConstraint::FixLinks( objects, link_stack, version ); \
 
 #define BHK_LIST_SHAPE_MEMBERS \
 uint numSubShapes; \
@@ -2383,17 +2165,17 @@ uint unknownInt2; \
 Ref<NiObject > unknownLink1; \
 Ref<NiObject > unknownLink2; \
 uint unknownInt3; \
-float unknownFloats1[3]; \
-float unknownFloats[7][4]; \
-float unknownFloat1; \
-float unknownFloat2; \
+RagDollDescriptor ragdoll; \
+LimitedHingeDescriptor limitedHinge; \
+float tau; \
+float damping; \
 
 #define BHK_MALLEABLE_CONSTRAINT_INCLUDE "AbhkConstraint.h" \
 
 #define BHK_MALLEABLE_CONSTRAINT_PARENT AbhkConstraint \
 
 #define BHK_MALLEABLE_CONSTRAINT_CONSTRUCT \
- : type((uint)0), unknownInt2((uint)0), unknownLink1(NULL), unknownLink2(NULL), unknownInt3((uint)0), unknownFloat1(0.0f), unknownFloat2(0.0f) \
+ : type((uint)0), unknownInt2((uint)0), unknownLink1(NULL), unknownLink2(NULL), unknownInt3((uint)0), tau(0.0f), damping(0.0f) \
 
 #define BHK_MALLEABLE_CONSTRAINT_READ \
 uint block_num; \
@@ -2405,18 +2187,34 @@ link_stack.push_back( block_num ); \
 NifStream( block_num, in, version ); \
 link_stack.push_back( block_num ); \
 NifStream( unknownInt3, in, version ); \
-for (uint i0 = 0; i0 < 3; i0++) { \
-  NifStream( unknownFloats1[i0], in, version ); \
+if ( (type == 7) ) { \
+  NifStream( ragdoll.pivotA, in, version ); \
+  NifStream( ragdoll.planeA, in, version ); \
+  NifStream( ragdoll.twistA, in, version ); \
+  NifStream( ragdoll.pivotB, in, version ); \
+  NifStream( ragdoll.planeB, in, version ); \
+  NifStream( ragdoll.twistB, in, version ); \
+  NifStream( ragdoll.coneMinAngle, in, version ); \
+  NifStream( ragdoll.planeMinAngle, in, version ); \
+  NifStream( ragdoll.planeMaxAngle, in, version ); \
+  NifStream( ragdoll.twistMinAngle, in, version ); \
+  NifStream( ragdoll.twistMaxAngle, in, version ); \
+  NifStream( ragdoll.maxFriction, in, version ); \
 }; \
-for (uint i0 = 0; i0 < 7; i0++) { \
-  for (uint i1 = 0; i1 < 4; i1++) { \
-    NifStream( unknownFloats[i0][i1], in, version ); \
-  }; \
-}; \
-NifStream( unknownFloat1, in, version ); \
 if ( (type == 2) ) { \
-  NifStream( unknownFloat2, in, version ); \
-}; \
+  NifStream( limitedHinge.pivotA, in, version ); \
+  NifStream( limitedHinge.axleA_, in, version ); \
+  NifStream( limitedHinge.perp2axleina1, in, version ); \
+  NifStream( limitedHinge.perp2axleina2, in, version ); \
+  NifStream( limitedHinge.pivotB, in, version ); \
+  NifStream( limitedHinge.axleB, in, version ); \
+  NifStream( limitedHinge.unknownVector, in, version ); \
+  NifStream( limitedHinge.minAngle, in, version ); \
+  NifStream( limitedHinge.maxAngle, in, version ); \
+  NifStream( limitedHinge.maxFriction, in, version ); \
+}; \
+NifStream( tau, in, version ); \
+NifStream( damping, in, version ); \
 
 #define BHK_MALLEABLE_CONSTRAINT_WRITE \
 AbhkConstraint::Write( out, link_map, version ); \
@@ -2425,18 +2223,34 @@ NifStream( unknownInt2, out, version ); \
 NifStream( link_map[StaticCast<NiObject>(unknownLink1)], out, version ); \
 NifStream( link_map[StaticCast<NiObject>(unknownLink2)], out, version ); \
 NifStream( unknownInt3, out, version ); \
-for (uint i0 = 0; i0 < 3; i0++) { \
-  NifStream( unknownFloats1[i0], out, version ); \
+if ( (type == 7) ) { \
+  NifStream( ragdoll.pivotA, out, version ); \
+  NifStream( ragdoll.planeA, out, version ); \
+  NifStream( ragdoll.twistA, out, version ); \
+  NifStream( ragdoll.pivotB, out, version ); \
+  NifStream( ragdoll.planeB, out, version ); \
+  NifStream( ragdoll.twistB, out, version ); \
+  NifStream( ragdoll.coneMinAngle, out, version ); \
+  NifStream( ragdoll.planeMinAngle, out, version ); \
+  NifStream( ragdoll.planeMaxAngle, out, version ); \
+  NifStream( ragdoll.twistMinAngle, out, version ); \
+  NifStream( ragdoll.twistMaxAngle, out, version ); \
+  NifStream( ragdoll.maxFriction, out, version ); \
 }; \
-for (uint i0 = 0; i0 < 7; i0++) { \
-  for (uint i1 = 0; i1 < 4; i1++) { \
-    NifStream( unknownFloats[i0][i1], out, version ); \
-  }; \
-}; \
-NifStream( unknownFloat1, out, version ); \
 if ( (type == 2) ) { \
-  NifStream( unknownFloat2, out, version ); \
-}; \
+  NifStream( limitedHinge.pivotA, out, version ); \
+  NifStream( limitedHinge.axleA_, out, version ); \
+  NifStream( limitedHinge.perp2axleina1, out, version ); \
+  NifStream( limitedHinge.perp2axleina2, out, version ); \
+  NifStream( limitedHinge.pivotB, out, version ); \
+  NifStream( limitedHinge.axleB, out, version ); \
+  NifStream( limitedHinge.unknownVector, out, version ); \
+  NifStream( limitedHinge.minAngle, out, version ); \
+  NifStream( limitedHinge.maxAngle, out, version ); \
+  NifStream( limitedHinge.maxFriction, out, version ); \
+}; \
+NifStream( tau, out, version ); \
+NifStream( damping, out, version ); \
 
 #define BHK_MALLEABLE_CONSTRAINT_STRING \
 stringstream out; \
@@ -2446,18 +2260,34 @@ out << "Unknown Int 2:  " << unknownInt2 << endl; \
 out << "Unknown Link 1:  " << "NiObject" << endl; \
 out << "Unknown Link 2:  " << "NiObject" << endl; \
 out << "Unknown Int 3:  " << unknownInt3 << endl; \
-for (uint i0 = 0; i0 < 3; i0++) { \
-  out << "  Unknown Floats 1[" << i0 << "]:  " << unknownFloats1[i0] << endl; \
-}; \
-for (uint i0 = 0; i0 < 7; i0++) { \
-  for (uint i1 = 0; i1 < 4; i1++) { \
-    out << "    Unknown Floats[" << i0 << "][" << i1 << "]:  " << unknownFloats[i0][i1] << endl; \
-  }; \
+if ( (type == 7) ) { \
+  out << "  Pivot A:  " << ragdoll.pivotA << endl; \
+  out << "  Plane A:  " << ragdoll.planeA << endl; \
+  out << "  Twist A:  " << ragdoll.twistA << endl; \
+  out << "  Pivot B:  " << ragdoll.pivotB << endl; \
+  out << "  Plane B:  " << ragdoll.planeB << endl; \
+  out << "  Twist B:  " << ragdoll.twistB << endl; \
+  out << "  Cone Min Angle:  " << ragdoll.coneMinAngle << endl; \
+  out << "  Plane Min Angle:  " << ragdoll.planeMinAngle << endl; \
+  out << "  Plane Max Angle:  " << ragdoll.planeMaxAngle << endl; \
+  out << "  Twist Min Angle:  " << ragdoll.twistMinAngle << endl; \
+  out << "  Twist Max Angle:  " << ragdoll.twistMaxAngle << endl; \
+  out << "  Max Friction:  " << ragdoll.maxFriction << endl; \
 }; \
-out << "Unknown Float 1:  " << unknownFloat1 << endl; \
 if ( (type == 2) ) { \
-  out << "  Unknown Float 2:  " << unknownFloat2 << endl; \
+  out << "  Pivot A:  " << limitedHinge.pivotA << endl; \
+  out << "  Axle A ?:  " << limitedHinge.axleA_ << endl; \
+  out << "  Perp2AxleInA1:  " << limitedHinge.perp2axleina1 << endl; \
+  out << "  Perp2AxleInA2:  " << limitedHinge.perp2axleina2 << endl; \
+  out << "  Pivot B:  " << limitedHinge.pivotB << endl; \
+  out << "  Axle B:  " << limitedHinge.axleB << endl; \
+  out << "  Unknown Vector:  " << limitedHinge.unknownVector << endl; \
+  out << "  Min Angle:  " << limitedHinge.minAngle << endl; \
+  out << "  Max Angle:  " << limitedHinge.maxAngle << endl; \
+  out << "  Max Friction:  " << limitedHinge.maxFriction << endl; \
 }; \
+out << "Tau:  " << tau << endl; \
+out << "Damping:  " << damping << endl; \
 return out.str(); \
 
 #define BHK_MALLEABLE_CONSTRAINT_FIXLINKS \
@@ -2783,7 +2613,7 @@ else \
 link_stack.pop_front(); \
 
 #define BHK_PRISMATIC_CONSTRAINT_MEMBERS \
-float unknownFloats[8][4]; \
+Float4 unknownVectors[8]; \
 float unknownFloats2[3]; \
 
 #define BHK_PRISMATIC_CONSTRAINT_INCLUDE "AbhkConstraint.h" \
@@ -2795,9 +2625,7 @@ float unknownFloats2[3]; \
 #define BHK_PRISMATIC_CONSTRAINT_READ \
 AbhkConstraint::Read( in, link_stack, version ); \
 for (uint i0 = 0; i0 < 8; i0++) { \
-  for (uint i1 = 0; i1 < 4; i1++) { \
-    NifStream( unknownFloats[i0][i1], in, version ); \
-  }; \
+  NifStream( unknownVectors[i0], in, version ); \
 }; \
 for (uint i0 = 0; i0 < 3; i0++) { \
   NifStream( unknownFloats2[i0], in, version ); \
@@ -2806,9 +2634,7 @@ for (uint i0 = 0; i0 < 3; i0++) { \
 #define BHK_PRISMATIC_CONSTRAINT_WRITE \
 AbhkConstraint::Write( out, link_map, version ); \
 for (uint i0 = 0; i0 < 8; i0++) { \
-  for (uint i1 = 0; i1 < 4; i1++) { \
-    NifStream( unknownFloats[i0][i1], out, version ); \
-  }; \
+  NifStream( unknownVectors[i0], out, version ); \
 }; \
 for (uint i0 = 0; i0 < 3; i0++) { \
   NifStream( unknownFloats2[i0], out, version ); \
@@ -2818,9 +2644,7 @@ for (uint i0 = 0; i0 < 3; i0++) { \
 stringstream out; \
 out << AbhkConstraint::asString(); \
 for (uint i0 = 0; i0 < 8; i0++) { \
-  for (uint i1 = 0; i1 < 4; i1++) { \
-    out << "    Unknown Floats[" << i0 << "][" << i1 << "]:  " << unknownFloats[i0][i1] << endl; \
-  }; \
+  out << "  Unknown Vectors[" << i0 << "]:  " << unknownVectors[i0] << endl; \
 }; \
 for (uint i0 = 0; i0 < 3; i0++) { \
   out << "  Unknown Floats 2[" << i0 << "]:  " << unknownFloats2[i0] << endl; \
diff --git a/obj/ABoneLODController.cpp b/obj/ABoneLODController.cpp
index eff66caf..306a9bdf 100644
--- a/obj/ABoneLODController.cpp
+++ b/obj/ABoneLODController.cpp
@@ -1,8 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "ABoneLODController.h"
-#include "NiNode.h"
+#include "obj/ABoneLODController.h"
+#include "gen/NodeGroup.h"
 
 //Definition of TYPE constant
 const Type ABoneLODController::TYPE("ABoneLODController", &A_BONE_L_O_D_CONTROLLER_PARENT::TYPE );
diff --git a/obj/ABoneLODController.h b/obj/ABoneLODController.h
index 54bf369b..7db43a3c 100644
--- a/obj/ABoneLODController.h
+++ b/obj/ABoneLODController.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _ABONELODCONTROLLER_H_
 #define _ABONELODCONTROLLER_H_
 
+#include "NiTimeController.h"
+#include "gen/NodeGroup.h"
+
 #include "gen/obj_defines.h"
-#include A_BONE_L_O_D_CONTROLLER_INCLUDE
 
 /*
  * ABoneLODController
diff --git a/obj/AKeyedData.cpp b/obj/AKeyedData.cpp
index d424b2a1..2e4df7e9 100644
--- a/obj/AKeyedData.cpp
+++ b/obj/AKeyedData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "AKeyedData.h"
+#include "obj/AKeyedData.h"
 
 //Definition of TYPE constant
 const Type AKeyedData::TYPE("AKeyedData", &A_KEYED_DATA_PARENT::TYPE );
diff --git a/obj/AKeyedData.h b/obj/AKeyedData.h
index 200ef280..132b66d2 100644
--- a/obj/AKeyedData.h
+++ b/obj/AKeyedData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _AKEYEDDATA_H_
 #define _AKEYEDDATA_H_
 
+#include "NiObject.h"
+
 #include "gen/obj_defines.h"
-#include A_KEYED_DATA_INCLUDE
 
 /*
  * AKeyedData
diff --git a/obj/APSysCtlr.cpp b/obj/APSysCtlr.cpp
index c7f87dcc..22ce461f 100644
--- a/obj/APSysCtlr.cpp
+++ b/obj/APSysCtlr.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "APSysCtlr.h"
+#include "obj/APSysCtlr.h"
 
 //Definition of TYPE constant
 const Type APSysCtlr::TYPE("APSysCtlr", &A_P_SYS_CTLR_PARENT::TYPE );
diff --git a/obj/APSysCtlr.h b/obj/APSysCtlr.h
index e690f573..fe8c8638 100644
--- a/obj/APSysCtlr.h
+++ b/obj/APSysCtlr.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _APSYSCTLR_H_
 #define _APSYSCTLR_H_
 
+#include "NiSingleInterpolatorController.h"
+
 #include "gen/obj_defines.h"
-#include A_P_SYS_CTLR_INCLUDE
 
 /*
  * APSysCtlr
diff --git a/obj/APSysData.cpp b/obj/APSysData.cpp
index e884dceb..46bccbce 100644
--- a/obj/APSysData.cpp
+++ b/obj/APSysData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "APSysData.h"
+#include "obj/APSysData.h"
 
 //Definition of TYPE constant
 const Type APSysData::TYPE("APSysData", &A_P_SYS_DATA_PARENT::TYPE );
diff --git a/obj/APSysData.h b/obj/APSysData.h
index 865ff47f..4d1fec37 100644
--- a/obj/APSysData.h
+++ b/obj/APSysData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _APSYSDATA_H_
 #define _APSYSDATA_H_
 
+#include "NiTriBasedGeomData.h"
+
 #include "gen/obj_defines.h"
-#include A_P_SYS_DATA_INCLUDE
 
 /*
  * APSysData
diff --git a/obj/AParticleModifier.cpp b/obj/AParticleModifier.cpp
index 0a43663f..dddacb92 100644
--- a/obj/AParticleModifier.cpp
+++ b/obj/AParticleModifier.cpp
@@ -1,9 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "AParticleModifier.h"
-#include "AParticleModifier.h"
-#include "NiParticleSystemController.h"
+#include "obj/AParticleModifier.h"
+#include "obj/NiParticleSystemController.h"
 
 //Definition of TYPE constant
 const Type AParticleModifier::TYPE("AParticleModifier", &A_PARTICLE_MODIFIER_PARENT::TYPE );
diff --git a/obj/AParticleModifier.h b/obj/AParticleModifier.h
index 154b25b7..69608942 100644
--- a/obj/AParticleModifier.h
+++ b/obj/AParticleModifier.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _APARTICLEMODIFIER_H_
 #define _APARTICLEMODIFIER_H_
 
+#include "NiObject.h"
+class NiParticleSystemController;
+
 #include "gen/obj_defines.h"
-#include A_PARTICLE_MODIFIER_INCLUDE
 
 /*
  * AParticleModifier
diff --git a/obj/AbhkConstraint.cpp b/obj/AbhkConstraint.cpp
index 2aafdbad..37f40b9d 100644
--- a/obj/AbhkConstraint.cpp
+++ b/obj/AbhkConstraint.cpp
@@ -1,8 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "AbhkConstraint.h"
-#include "bhkShape.h"
+#include "obj/AbhkConstraint.h"
+#include "obj/bhkShape.h"
 
 //Definition of TYPE constant
 const Type AbhkConstraint::TYPE("AbhkConstraint", &ABHK_CONSTRAINT_PARENT::TYPE );
diff --git a/obj/AbhkConstraint.h b/obj/AbhkConstraint.h
index e68c65c8..987bade9 100644
--- a/obj/AbhkConstraint.h
+++ b/obj/AbhkConstraint.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _ABHKCONSTRAINT_H_
 #define _ABHKCONSTRAINT_H_
 
+#include "bhkSerializable.h"
+class bhkShape;
+
 #include "gen/obj_defines.h"
-#include ABHK_CONSTRAINT_INCLUDE
 
 /*
  * AbhkConstraint
diff --git a/obj/AbhkRagdollConstraint.cpp b/obj/AbhkRagdollConstraint.cpp
index 27361421..629400d8 100644
--- a/obj/AbhkRagdollConstraint.cpp
+++ b/obj/AbhkRagdollConstraint.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "AbhkRagdollConstraint.h"
+#include "obj/AbhkRagdollConstraint.h"
 
 //Definition of TYPE constant
 const Type AbhkRagdollConstraint::TYPE("AbhkRagdollConstraint", &ABHK_RAGDOLL_CONSTRAINT_PARENT::TYPE );
diff --git a/obj/AbhkRagdollConstraint.h b/obj/AbhkRagdollConstraint.h
index 44d9d681..123d023f 100644
--- a/obj/AbhkRagdollConstraint.h
+++ b/obj/AbhkRagdollConstraint.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _ABHKRAGDOLLCONSTRAINT_H_
 #define _ABHKRAGDOLLCONSTRAINT_H_
 
+#include "AbhkConstraint.h"
+
 #include "gen/obj_defines.h"
-#include ABHK_RAGDOLL_CONSTRAINT_INCLUDE
 
 /*
  * AbhkRagdollConstraint
diff --git a/obj/AbhkShapeCollection.cpp b/obj/AbhkShapeCollection.cpp
index b29bd86c..4015a9e2 100644
--- a/obj/AbhkShapeCollection.cpp
+++ b/obj/AbhkShapeCollection.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "AbhkShapeCollection.h"
+#include "obj/AbhkShapeCollection.h"
 
 //Definition of TYPE constant
 const Type AbhkShapeCollection::TYPE("AbhkShapeCollection", &ABHK_SHAPE_COLLECTION_PARENT::TYPE );
diff --git a/obj/AbhkShapeCollection.h b/obj/AbhkShapeCollection.h
index ee382c3e..e0a5255e 100644
--- a/obj/AbhkShapeCollection.h
+++ b/obj/AbhkShapeCollection.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _ABHKSHAPECOLLECTION_H_
 #define _ABHKSHAPECOLLECTION_H_
 
+#include "bhkShape.h"
+
 #include "gen/obj_defines.h"
-#include ABHK_SHAPE_COLLECTION_INCLUDE
 
 /*
  * AbhkShapeCollection
diff --git a/obj/AvoidNode.cpp b/obj/AvoidNode.cpp
index c00db870..99324a13 100644
--- a/obj/AvoidNode.cpp
+++ b/obj/AvoidNode.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "AvoidNode.h"
+#include "obj/AvoidNode.h"
 
 //Definition of TYPE constant
 const Type AvoidNode::TYPE("AvoidNode", &AVOID_NODE_PARENT::TYPE );
diff --git a/obj/AvoidNode.h b/obj/AvoidNode.h
index 0ce41923..6b9a4fdb 100644
--- a/obj/AvoidNode.h
+++ b/obj/AvoidNode.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _AVOIDNODE_H_
 #define _AVOIDNODE_H_
 
+#include "NiNode.h"
+
 #include "gen/obj_defines.h"
-#include AVOID_NODE_INCLUDE
 
 /*
  * AvoidNode
diff --git a/obj/BSBound.cpp b/obj/BSBound.cpp
index 2ba3486e..0eb753d8 100644
--- a/obj/BSBound.cpp
+++ b/obj/BSBound.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "BSBound.h"
+#include "obj/BSBound.h"
 
 //Definition of TYPE constant
 const Type BSBound::TYPE("BSBound", &B_S_BOUND_PARENT::TYPE );
diff --git a/obj/BSBound.h b/obj/BSBound.h
index 97df9911..8827742b 100644
--- a/obj/BSBound.h
+++ b/obj/BSBound.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BSBOUND_H_
 #define _BSBOUND_H_
 
+#include "NiExtraData.h"
+
 #include "gen/obj_defines.h"
-#include B_S_BOUND_INCLUDE
 
 /*
  * BSBound
diff --git a/obj/BSFurnitureMarker.cpp b/obj/BSFurnitureMarker.cpp
index 3b97c0c9..bcdb10a7 100644
--- a/obj/BSFurnitureMarker.cpp
+++ b/obj/BSFurnitureMarker.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "BSFurnitureMarker.h"
+#include "obj/BSFurnitureMarker.h"
+#include "gen/FurniturePosition.h"
 
 //Definition of TYPE constant
 const Type BSFurnitureMarker::TYPE("BSFurnitureMarker", &B_S_FURNITURE_MARKER_PARENT::TYPE );
diff --git a/obj/BSFurnitureMarker.h b/obj/BSFurnitureMarker.h
index 70f977e0..c5faf32d 100644
--- a/obj/BSFurnitureMarker.h
+++ b/obj/BSFurnitureMarker.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BSFURNITUREMARKER_H_
 #define _BSFURNITUREMARKER_H_
 
+#include "NiExtraData.h"
+#include "gen/FurniturePosition.h"
+
 #include "gen/obj_defines.h"
-#include B_S_FURNITURE_MARKER_INCLUDE
 
 /*
  * BSFurnitureMarker
diff --git a/obj/BSKeyframeController.cpp b/obj/BSKeyframeController.cpp
index d50f3af2..aa3fbdbf 100644
--- a/obj/BSKeyframeController.cpp
+++ b/obj/BSKeyframeController.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "BSKeyframeController.h"
-#include "NiKeyframeData.h"
+#include "obj/BSKeyframeController.h"
 
 //Definition of TYPE constant
 const Type BSKeyframeController::TYPE("BSKeyframeController", &B_S_KEYFRAME_CONTROLLER_PARENT::TYPE );
diff --git a/obj/BSKeyframeController.h b/obj/BSKeyframeController.h
index ff1148cd..ed1db940 100644
--- a/obj/BSKeyframeController.h
+++ b/obj/BSKeyframeController.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BSKEYFRAMECONTROLLER_H_
 #define _BSKEYFRAMECONTROLLER_H_
 
+#include "NiKeyframeController.h"
+#include "Ref.h"
+#include "obj/NiKeyframeData.h"
+
 #include "gen/obj_defines.h"
-#include B_S_KEYFRAME_CONTROLLER_INCLUDE
 
 /*
  * BSKeyframeController
diff --git a/obj/BSPSysArrayEmitter.cpp b/obj/BSPSysArrayEmitter.cpp
index 9292fecb..cd4bf420 100644
--- a/obj/BSPSysArrayEmitter.cpp
+++ b/obj/BSPSysArrayEmitter.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "BSPSysArrayEmitter.h"
+#include "obj/BSPSysArrayEmitter.h"
 
 //Definition of TYPE constant
 const Type BSPSysArrayEmitter::TYPE("BSPSysArrayEmitter", &B_S_P_SYS_ARRAY_EMITTER_PARENT::TYPE );
diff --git a/obj/BSPSysArrayEmitter.h b/obj/BSPSysArrayEmitter.h
index 540534e2..05b6433f 100644
--- a/obj/BSPSysArrayEmitter.h
+++ b/obj/BSPSysArrayEmitter.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BSPSYSARRAYEMITTER_H_
 #define _BSPSYSARRAYEMITTER_H_
 
+#include "NiPSysVolumeEmitter.h"
+
 #include "gen/obj_defines.h"
-#include B_S_P_SYS_ARRAY_EMITTER_INCLUDE
 
 /*
  * BSPSysArrayEmitter
diff --git a/obj/BSParentVelocityModifier.cpp b/obj/BSParentVelocityModifier.cpp
index 4eb2aa86..e86157ef 100644
--- a/obj/BSParentVelocityModifier.cpp
+++ b/obj/BSParentVelocityModifier.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "BSParentVelocityModifier.h"
+#include "obj/BSParentVelocityModifier.h"
 
 //Definition of TYPE constant
 const Type BSParentVelocityModifier::TYPE("BSParentVelocityModifier", &B_S_PARENT_VELOCITY_MODIFIER_PARENT::TYPE );
diff --git a/obj/BSParentVelocityModifier.h b/obj/BSParentVelocityModifier.h
index 38d659ea..fff713e2 100644
--- a/obj/BSParentVelocityModifier.h
+++ b/obj/BSParentVelocityModifier.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BSPARENTVELOCITYMODIFIER_H_
 #define _BSPARENTVELOCITYMODIFIER_H_
 
+#include "NiPSysModifier.h"
+
 #include "gen/obj_defines.h"
-#include B_S_PARENT_VELOCITY_MODIFIER_INCLUDE
 
 /*
  * BSParentVelocityModifier
diff --git a/obj/BSXFlags.cpp b/obj/BSXFlags.cpp
index b645d2e9..df08734e 100644
--- a/obj/BSXFlags.cpp
+++ b/obj/BSXFlags.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "BSXFlags.h"
+#include "obj/BSXFlags.h"
 
 //Definition of TYPE constant
 const Type BSXFlags::TYPE("BSXFlags", &B_S_X_FLAGS_PARENT::TYPE );
diff --git a/obj/BSXFlags.h b/obj/BSXFlags.h
index cd2125c9..e9f7020e 100644
--- a/obj/BSXFlags.h
+++ b/obj/BSXFlags.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BSXFLAGS_H_
 #define _BSXFLAGS_H_
 
+#include "NiExtraData.h"
+
 #include "gen/obj_defines.h"
-#include B_S_X_FLAGS_INCLUDE
 
 /*
  * BSXFlags
diff --git a/obj/FxButton.cpp b/obj/FxButton.cpp
index f9b5b1a2..6a16cb4b 100644
--- a/obj/FxButton.cpp
+++ b/obj/FxButton.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "FxButton.h"
+#include "obj/FxButton.h"
 
 //Definition of TYPE constant
 const Type FxButton::TYPE("FxButton", &FX_BUTTON_PARENT::TYPE );
diff --git a/obj/FxButton.h b/obj/FxButton.h
index 08f91ad5..8ce271ca 100644
--- a/obj/FxButton.h
+++ b/obj/FxButton.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _FXBUTTON_H_
 #define _FXBUTTON_H_
 
+#include "FxWidget.h"
+
 #include "gen/obj_defines.h"
-#include FX_BUTTON_INCLUDE
 
 /*
  * FxButton
diff --git a/obj/FxRadioButton.cpp b/obj/FxRadioButton.cpp
index 073cd74a..ac087625 100644
--- a/obj/FxRadioButton.cpp
+++ b/obj/FxRadioButton.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "FxRadioButton.h"
-#include "NiObject.h"
+#include "obj/FxRadioButton.h"
 
 //Definition of TYPE constant
 const Type FxRadioButton::TYPE("FxRadioButton", &FX_RADIO_BUTTON_PARENT::TYPE );
diff --git a/obj/FxRadioButton.h b/obj/FxRadioButton.h
index 406dc948..2d8b51c9 100644
--- a/obj/FxRadioButton.h
+++ b/obj/FxRadioButton.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _FXRADIOBUTTON_H_
 #define _FXRADIOBUTTON_H_
 
+#include "FxWidget.h"
+#include "Ref.h"
+#include "obj/NiObject.h"
+
 #include "gen/obj_defines.h"
-#include FX_RADIO_BUTTON_INCLUDE
 
 /*
  * FxRadioButton
diff --git a/obj/FxWidget.cpp b/obj/FxWidget.cpp
index a4dad88e..0fc9bf50 100644
--- a/obj/FxWidget.cpp
+++ b/obj/FxWidget.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "FxWidget.h"
+#include "obj/FxWidget.h"
 
 //Definition of TYPE constant
 const Type FxWidget::TYPE("FxWidget", &FX_WIDGET_PARENT::TYPE );
diff --git a/obj/FxWidget.h b/obj/FxWidget.h
index 9be4551c..34005ea2 100644
--- a/obj/FxWidget.h
+++ b/obj/FxWidget.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _FXWIDGET_H_
 #define _FXWIDGET_H_
 
+#include "NiNode.h"
+
 #include "gen/obj_defines.h"
-#include FX_WIDGET_INCLUDE
 
 /*
  * FxWidget
diff --git a/obj/NiAlphaController.cpp b/obj/NiAlphaController.cpp
index bae2299d..9ddc18ba 100644
--- a/obj/NiAlphaController.cpp
+++ b/obj/NiAlphaController.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiAlphaController.h"
-#include "NiFloatData.h"
+#include "obj/NiAlphaController.h"
 
 //Definition of TYPE constant
 const Type NiAlphaController::TYPE("NiAlphaController", &NI_ALPHA_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiAlphaController.h b/obj/NiAlphaController.h
index 226a5841..e9057ef9 100644
--- a/obj/NiAlphaController.h
+++ b/obj/NiAlphaController.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIALPHACONTROLLER_H_
 #define _NIALPHACONTROLLER_H_
 
+#include "NiSingleInterpolatorController.h"
+#include "Ref.h"
+#include "obj/NiFloatData.h"
+
 #include "gen/obj_defines.h"
-#include NI_ALPHA_CONTROLLER_INCLUDE
 
 /*
  * NiAlphaController
diff --git a/obj/NiAlphaProperty.cpp b/obj/NiAlphaProperty.cpp
index d5d012ec..9054a60c 100644
--- a/obj/NiAlphaProperty.cpp
+++ b/obj/NiAlphaProperty.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiAlphaProperty.h"
+#include "obj/NiAlphaProperty.h"
 
 //Definition of TYPE constant
 const Type NiAlphaProperty::TYPE("NiAlphaProperty", &NI_ALPHA_PROPERTY_PARENT::TYPE );
diff --git a/obj/NiAlphaProperty.h b/obj/NiAlphaProperty.h
index e61e2840..5ebf4fa2 100644
--- a/obj/NiAlphaProperty.h
+++ b/obj/NiAlphaProperty.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIALPHAPROPERTY_H_
 #define _NIALPHAPROPERTY_H_
 
+#include "NiProperty.h"
+
 #include "gen/obj_defines.h"
-#include NI_ALPHA_PROPERTY_INCLUDE
 
 /*
  * NiAlphaProperty
diff --git a/obj/NiAmbientLight.cpp b/obj/NiAmbientLight.cpp
index 554f4b57..6e496e39 100644
--- a/obj/NiAmbientLight.cpp
+++ b/obj/NiAmbientLight.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiAmbientLight.h"
+#include "obj/NiAmbientLight.h"
 
 //Definition of TYPE constant
 const Type NiAmbientLight::TYPE("NiAmbientLight", &NI_AMBIENT_LIGHT_PARENT::TYPE );
diff --git a/obj/NiAmbientLight.h b/obj/NiAmbientLight.h
index 904af4e9..cb449ed3 100644
--- a/obj/NiAmbientLight.h
+++ b/obj/NiAmbientLight.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIAMBIENTLIGHT_H_
 #define _NIAMBIENTLIGHT_H_
 
+#include "NiLight.h"
+
 #include "gen/obj_defines.h"
-#include NI_AMBIENT_LIGHT_INCLUDE
 
 /*
  * NiAmbientLight
diff --git a/obj/NiAutoNormalParticles.cpp b/obj/NiAutoNormalParticles.cpp
index c6501647..13f3fa3e 100644
--- a/obj/NiAutoNormalParticles.cpp
+++ b/obj/NiAutoNormalParticles.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiAutoNormalParticles.h"
+#include "obj/NiAutoNormalParticles.h"
 
 //Definition of TYPE constant
 const Type NiAutoNormalParticles::TYPE("NiAutoNormalParticles", &NI_AUTO_NORMAL_PARTICLES_PARENT::TYPE );
diff --git a/obj/NiAutoNormalParticles.h b/obj/NiAutoNormalParticles.h
index 16900c4a..59d75649 100644
--- a/obj/NiAutoNormalParticles.h
+++ b/obj/NiAutoNormalParticles.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIAUTONORMALPARTICLES_H_
 #define _NIAUTONORMALPARTICLES_H_
 
+#include "NiParticles.h"
+
 #include "gen/obj_defines.h"
-#include NI_AUTO_NORMAL_PARTICLES_INCLUDE
 
 /*
  * NiAutoNormalParticles
diff --git a/obj/NiAutoNormalParticlesData.cpp b/obj/NiAutoNormalParticlesData.cpp
index dd13be31..4d1ab7bd 100644
--- a/obj/NiAutoNormalParticlesData.cpp
+++ b/obj/NiAutoNormalParticlesData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiAutoNormalParticlesData.h"
+#include "obj/NiAutoNormalParticlesData.h"
 
 //Definition of TYPE constant
 const Type NiAutoNormalParticlesData::TYPE("NiAutoNormalParticlesData", &NI_AUTO_NORMAL_PARTICLES_DATA_PARENT::TYPE );
diff --git a/obj/NiAutoNormalParticlesData.h b/obj/NiAutoNormalParticlesData.h
index 23da7b6e..0910b48a 100644
--- a/obj/NiAutoNormalParticlesData.h
+++ b/obj/NiAutoNormalParticlesData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIAUTONORMALPARTICLESDATA_H_
 #define _NIAUTONORMALPARTICLESDATA_H_
 
+#include "NiTriBasedGeomData.h"
+
 #include "gen/obj_defines.h"
-#include NI_AUTO_NORMAL_PARTICLES_DATA_INCLUDE
 
 /*
  * NiAutoNormalParticlesData
diff --git a/obj/NiBSAnimationNode.cpp b/obj/NiBSAnimationNode.cpp
index 4e86331b..41025741 100644
--- a/obj/NiBSAnimationNode.cpp
+++ b/obj/NiBSAnimationNode.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBSAnimationNode.h"
+#include "obj/NiBSAnimationNode.h"
 
 //Definition of TYPE constant
 const Type NiBSAnimationNode::TYPE("NiBSAnimationNode", &NI_B_S_ANIMATION_NODE_PARENT::TYPE );
diff --git a/obj/NiBSAnimationNode.h b/obj/NiBSAnimationNode.h
index 0ef43fe9..a9f4a3dc 100644
--- a/obj/NiBSAnimationNode.h
+++ b/obj/NiBSAnimationNode.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBSANIMATIONNODE_H_
 #define _NIBSANIMATIONNODE_H_
 
+#include "NiNode.h"
+
 #include "gen/obj_defines.h"
-#include NI_B_S_ANIMATION_NODE_INCLUDE
 
 /*
  * NiBSAnimationNode
diff --git a/obj/NiBSBoneLODController.cpp b/obj/NiBSBoneLODController.cpp
index 1357052a..fe26f80d 100644
--- a/obj/NiBSBoneLODController.cpp
+++ b/obj/NiBSBoneLODController.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBSBoneLODController.h"
+#include "obj/NiBSBoneLODController.h"
 
 //Definition of TYPE constant
 const Type NiBSBoneLODController::TYPE("NiBSBoneLODController", &NI_B_S_BONE_L_O_D_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiBSBoneLODController.h b/obj/NiBSBoneLODController.h
index 318076c0..728b2c48 100644
--- a/obj/NiBSBoneLODController.h
+++ b/obj/NiBSBoneLODController.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBSBONELODCONTROLLER_H_
 #define _NIBSBONELODCONTROLLER_H_
 
+#include "ABoneLODController.h"
+
 #include "gen/obj_defines.h"
-#include NI_B_S_BONE_L_O_D_CONTROLLER_INCLUDE
 
 /*
  * NiBSBoneLODController
diff --git a/obj/NiBSPArrayController.cpp b/obj/NiBSPArrayController.cpp
index de0bab9d..4a7c32ab 100644
--- a/obj/NiBSPArrayController.cpp
+++ b/obj/NiBSPArrayController.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBSPArrayController.h"
+#include "obj/NiBSPArrayController.h"
 
 //Definition of TYPE constant
 const Type NiBSPArrayController::TYPE("NiBSPArrayController", &NI_B_S_P_ARRAY_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiBSPArrayController.h b/obj/NiBSPArrayController.h
index d67e6432..ee9248b7 100644
--- a/obj/NiBSPArrayController.h
+++ b/obj/NiBSPArrayController.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBSPARRAYCONTROLLER_H_
 #define _NIBSPARRAYCONTROLLER_H_
 
+#include "NiParticleSystemController.h"
+
 #include "gen/obj_defines.h"
-#include NI_B_S_P_ARRAY_CONTROLLER_INCLUDE
 
 /*
  * NiBSPArrayController
diff --git a/obj/NiBSParticleNode.cpp b/obj/NiBSParticleNode.cpp
index 81167de3..20bc1c30 100644
--- a/obj/NiBSParticleNode.cpp
+++ b/obj/NiBSParticleNode.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBSParticleNode.h"
+#include "obj/NiBSParticleNode.h"
 
 //Definition of TYPE constant
 const Type NiBSParticleNode::TYPE("NiBSParticleNode", &NI_B_S_PARTICLE_NODE_PARENT::TYPE );
diff --git a/obj/NiBSParticleNode.h b/obj/NiBSParticleNode.h
index d88f8fb5..14055eec 100644
--- a/obj/NiBSParticleNode.h
+++ b/obj/NiBSParticleNode.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBSPARTICLENODE_H_
 #define _NIBSPARTICLENODE_H_
 
+#include "NiNode.h"
+
 #include "gen/obj_defines.h"
-#include NI_B_S_PARTICLE_NODE_INCLUDE
 
 /*
  * NiBSParticleNode
diff --git a/obj/NiBSplineBasisData.cpp b/obj/NiBSplineBasisData.cpp
index 192f3f3a..b9cd67a3 100644
--- a/obj/NiBSplineBasisData.cpp
+++ b/obj/NiBSplineBasisData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBSplineBasisData.h"
+#include "obj/NiBSplineBasisData.h"
 
 //Definition of TYPE constant
 const Type NiBSplineBasisData::TYPE("NiBSplineBasisData", &NI_B_SPLINE_BASIS_DATA_PARENT::TYPE );
diff --git a/obj/NiBSplineBasisData.h b/obj/NiBSplineBasisData.h
index 71fcdf93..7b3af061 100644
--- a/obj/NiBSplineBasisData.h
+++ b/obj/NiBSplineBasisData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBSPLINEBASISDATA_H_
 #define _NIBSPLINEBASISDATA_H_
 
+#include "NiObject.h"
+
 #include "gen/obj_defines.h"
-#include NI_B_SPLINE_BASIS_DATA_INCLUDE
 
 /*
  * NiBSplineBasisData
diff --git a/obj/NiBSplineCompFloatInterpolator.cpp b/obj/NiBSplineCompFloatInterpolator.cpp
index a571b08c..cc03985b 100644
--- a/obj/NiBSplineCompFloatInterpolator.cpp
+++ b/obj/NiBSplineCompFloatInterpolator.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBSplineCompFloatInterpolator.h"
+#include "obj/NiBSplineCompFloatInterpolator.h"
 
 //Definition of TYPE constant
 const Type NiBSplineCompFloatInterpolator::TYPE("NiBSplineCompFloatInterpolator", &NI_B_SPLINE_COMP_FLOAT_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiBSplineCompFloatInterpolator.h b/obj/NiBSplineCompFloatInterpolator.h
index cbd1ecac..c9b63623 100644
--- a/obj/NiBSplineCompFloatInterpolator.h
+++ b/obj/NiBSplineCompFloatInterpolator.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBSPLINECOMPFLOATINTERPOLATOR_H_
 #define _NIBSPLINECOMPFLOATINTERPOLATOR_H_
 
+#include "NiBSplineInterpolator.h"
+
 #include "gen/obj_defines.h"
-#include NI_B_SPLINE_COMP_FLOAT_INTERPOLATOR_INCLUDE
 
 /*
  * NiBSplineCompFloatInterpolator
diff --git a/obj/NiBSplineCompPoint3Interpolator.cpp b/obj/NiBSplineCompPoint3Interpolator.cpp
index 8f40b4be..04ab1735 100644
--- a/obj/NiBSplineCompPoint3Interpolator.cpp
+++ b/obj/NiBSplineCompPoint3Interpolator.cpp
@@ -1,9 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBSplineCompPoint3Interpolator.h"
-#include "NiBSplineData.h"
-#include "NiObject.h"
+#include "obj/NiBSplineCompPoint3Interpolator.h"
 
 //Definition of TYPE constant
 const Type NiBSplineCompPoint3Interpolator::TYPE("NiBSplineCompPoint3Interpolator", &NI_B_SPLINE_COMP_POINT3_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiBSplineCompPoint3Interpolator.h b/obj/NiBSplineCompPoint3Interpolator.h
index 2b14e1e6..5cd99df2 100644
--- a/obj/NiBSplineCompPoint3Interpolator.h
+++ b/obj/NiBSplineCompPoint3Interpolator.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBSPLINECOMPPOINT3INTERPOLATOR_H_
 #define _NIBSPLINECOMPPOINT3INTERPOLATOR_H_
 
+#include "NiBSplineInterpolator.h"
+#include "Ref.h"
+#include "obj/NiBSplineData.h"
+#include "obj/NiObject.h"
+
 #include "gen/obj_defines.h"
-#include NI_B_SPLINE_COMP_POINT3_INTERPOLATOR_INCLUDE
 
 /*
  * NiBSplineCompPoint3Interpolator
diff --git a/obj/NiBSplineCompTransformInterpolator.cpp b/obj/NiBSplineCompTransformInterpolator.cpp
index e5227acd..c0dccbf0 100644
--- a/obj/NiBSplineCompTransformInterpolator.cpp
+++ b/obj/NiBSplineCompTransformInterpolator.cpp
@@ -1,9 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBSplineCompTransformInterpolator.h"
-#include "NiBSplineData.h"
-#include "NiBSplineBasisData.h"
+#include "obj/NiBSplineCompTransformInterpolator.h"
 
 //Definition of TYPE constant
 const Type NiBSplineCompTransformInterpolator::TYPE("NiBSplineCompTransformInterpolator", &NI_B_SPLINE_COMP_TRANSFORM_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiBSplineCompTransformInterpolator.h b/obj/NiBSplineCompTransformInterpolator.h
index f42738ca..65f0e38e 100644
--- a/obj/NiBSplineCompTransformInterpolator.h
+++ b/obj/NiBSplineCompTransformInterpolator.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBSPLINECOMPTRANSFORMINTERPOLATOR_H_
 #define _NIBSPLINECOMPTRANSFORMINTERPOLATOR_H_
 
+#include "NiBSplineInterpolator.h"
+#include "Ref.h"
+#include "obj/NiBSplineData.h"
+#include "obj/NiBSplineBasisData.h"
+
 #include "gen/obj_defines.h"
-#include NI_B_SPLINE_COMP_TRANSFORM_INTERPOLATOR_INCLUDE
 
 /*
  * NiBSplineCompTransformInterpolator
diff --git a/obj/NiBSplineData.cpp b/obj/NiBSplineData.cpp
index 4c2626ca..6ef9504a 100644
--- a/obj/NiBSplineData.cpp
+++ b/obj/NiBSplineData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBSplineData.h"
+#include "obj/NiBSplineData.h"
 
 //Definition of TYPE constant
 const Type NiBSplineData::TYPE("NiBSplineData", &NI_B_SPLINE_DATA_PARENT::TYPE );
diff --git a/obj/NiBSplineData.h b/obj/NiBSplineData.h
index 23a01661..1a2e2bf5 100644
--- a/obj/NiBSplineData.h
+++ b/obj/NiBSplineData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBSPLINEDATA_H_
 #define _NIBSPLINEDATA_H_
 
+#include "NiObject.h"
+
 #include "gen/obj_defines.h"
-#include NI_B_SPLINE_DATA_INCLUDE
 
 /*
  * NiBSplineData
diff --git a/obj/NiBSplineInterpolator.cpp b/obj/NiBSplineInterpolator.cpp
index 4351292b..a34774be 100644
--- a/obj/NiBSplineInterpolator.cpp
+++ b/obj/NiBSplineInterpolator.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBSplineInterpolator.h"
+#include "obj/NiBSplineInterpolator.h"
 
 //Definition of TYPE constant
 const Type NiBSplineInterpolator::TYPE("NiBSplineInterpolator", &NI_B_SPLINE_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiBSplineInterpolator.h b/obj/NiBSplineInterpolator.h
index 34e95cfc..d78fe31a 100644
--- a/obj/NiBSplineInterpolator.h
+++ b/obj/NiBSplineInterpolator.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBSPLINEINTERPOLATOR_H_
 #define _NIBSPLINEINTERPOLATOR_H_
 
+#include "NiInterpolator.h"
+
 #include "gen/obj_defines.h"
-#include NI_B_SPLINE_INTERPOLATOR_INCLUDE
 
 /*
  * NiBSplineInterpolator
diff --git a/obj/NiBillboardNode.cpp b/obj/NiBillboardNode.cpp
index defe4afb..868526b6 100644
--- a/obj/NiBillboardNode.cpp
+++ b/obj/NiBillboardNode.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBillboardNode.h"
+#include "obj/NiBillboardNode.h"
 
 //Definition of TYPE constant
 const Type NiBillboardNode::TYPE("NiBillboardNode", &NI_BILLBOARD_NODE_PARENT::TYPE );
diff --git a/obj/NiBillboardNode.h b/obj/NiBillboardNode.h
index 065da941..cb11e190 100644
--- a/obj/NiBillboardNode.h
+++ b/obj/NiBillboardNode.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBILLBOARDNODE_H_
 #define _NIBILLBOARDNODE_H_
 
+#include "NiNode.h"
+
 #include "gen/obj_defines.h"
-#include NI_BILLBOARD_NODE_INCLUDE
 
 /*
  * NiBillboardNode
diff --git a/obj/NiBinaryExtraData.cpp b/obj/NiBinaryExtraData.cpp
index 575c8dea..8924748b 100644
--- a/obj/NiBinaryExtraData.cpp
+++ b/obj/NiBinaryExtraData.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBinaryExtraData.h"
+#include "obj/NiBinaryExtraData.h"
+#include "gen/ByteArray.h"
 
 //Definition of TYPE constant
 const Type NiBinaryExtraData::TYPE("NiBinaryExtraData", &NI_BINARY_EXTRA_DATA_PARENT::TYPE );
diff --git a/obj/NiBinaryExtraData.h b/obj/NiBinaryExtraData.h
index 48ac9f16..2247cc9e 100644
--- a/obj/NiBinaryExtraData.h
+++ b/obj/NiBinaryExtraData.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBINARYEXTRADATA_H_
 #define _NIBINARYEXTRADATA_H_
 
+#include "NiExtraData.h"
+#include "gen/ByteArray.h"
+
 #include "gen/obj_defines.h"
-#include NI_BINARY_EXTRA_DATA_INCLUDE
 
 /*
  * NiBinaryExtraData
diff --git a/obj/NiBlendBoolInterpolator.cpp b/obj/NiBlendBoolInterpolator.cpp
index 0b75115d..6cee108b 100644
--- a/obj/NiBlendBoolInterpolator.cpp
+++ b/obj/NiBlendBoolInterpolator.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBlendBoolInterpolator.h"
+#include "obj/NiBlendBoolInterpolator.h"
 
 //Definition of TYPE constant
 const Type NiBlendBoolInterpolator::TYPE("NiBlendBoolInterpolator", &NI_BLEND_BOOL_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiBlendBoolInterpolator.h b/obj/NiBlendBoolInterpolator.h
index 33f5af01..0e0611f2 100644
--- a/obj/NiBlendBoolInterpolator.h
+++ b/obj/NiBlendBoolInterpolator.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBLENDBOOLINTERPOLATOR_H_
 #define _NIBLENDBOOLINTERPOLATOR_H_
 
+#include "NiBlendInterpolator.h"
+
 #include "gen/obj_defines.h"
-#include NI_BLEND_BOOL_INTERPOLATOR_INCLUDE
 
 /*
  * NiBlendBoolInterpolator
diff --git a/obj/NiBlendFloatInterpolator.cpp b/obj/NiBlendFloatInterpolator.cpp
index ec86bf06..d0660f99 100644
--- a/obj/NiBlendFloatInterpolator.cpp
+++ b/obj/NiBlendFloatInterpolator.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBlendFloatInterpolator.h"
+#include "obj/NiBlendFloatInterpolator.h"
 
 //Definition of TYPE constant
 const Type NiBlendFloatInterpolator::TYPE("NiBlendFloatInterpolator", &NI_BLEND_FLOAT_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiBlendFloatInterpolator.h b/obj/NiBlendFloatInterpolator.h
index e51cabb3..cbdae30a 100644
--- a/obj/NiBlendFloatInterpolator.h
+++ b/obj/NiBlendFloatInterpolator.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBLENDFLOATINTERPOLATOR_H_
 #define _NIBLENDFLOATINTERPOLATOR_H_
 
+#include "NiBlendInterpolator.h"
+
 #include "gen/obj_defines.h"
-#include NI_BLEND_FLOAT_INTERPOLATOR_INCLUDE
 
 /*
  * NiBlendFloatInterpolator
diff --git a/obj/NiBlendInterpolator.cpp b/obj/NiBlendInterpolator.cpp
index bb031de5..6b7e2d7b 100644
--- a/obj/NiBlendInterpolator.cpp
+++ b/obj/NiBlendInterpolator.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBlendInterpolator.h"
+#include "obj/NiBlendInterpolator.h"
 
 //Definition of TYPE constant
 const Type NiBlendInterpolator::TYPE("NiBlendInterpolator", &NI_BLEND_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiBlendInterpolator.h b/obj/NiBlendInterpolator.h
index 029ec483..767ec1b1 100644
--- a/obj/NiBlendInterpolator.h
+++ b/obj/NiBlendInterpolator.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBLENDINTERPOLATOR_H_
 #define _NIBLENDINTERPOLATOR_H_
 
+#include "NiInterpolator.h"
+
 #include "gen/obj_defines.h"
-#include NI_BLEND_INTERPOLATOR_INCLUDE
 
 /*
  * NiBlendInterpolator
diff --git a/obj/NiBlendPoint3Interpolator.cpp b/obj/NiBlendPoint3Interpolator.cpp
index a251dd67..b7d925ab 100644
--- a/obj/NiBlendPoint3Interpolator.cpp
+++ b/obj/NiBlendPoint3Interpolator.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBlendPoint3Interpolator.h"
+#include "obj/NiBlendPoint3Interpolator.h"
 
 //Definition of TYPE constant
 const Type NiBlendPoint3Interpolator::TYPE("NiBlendPoint3Interpolator", &NI_BLEND_POINT3_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiBlendPoint3Interpolator.h b/obj/NiBlendPoint3Interpolator.h
index 90de087c..d63395be 100644
--- a/obj/NiBlendPoint3Interpolator.h
+++ b/obj/NiBlendPoint3Interpolator.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBLENDPOINT3INTERPOLATOR_H_
 #define _NIBLENDPOINT3INTERPOLATOR_H_
 
+#include "NiBlendInterpolator.h"
+
 #include "gen/obj_defines.h"
-#include NI_BLEND_POINT3_INTERPOLATOR_INCLUDE
 
 /*
  * NiBlendPoint3Interpolator
diff --git a/obj/NiBlendTransformInterpolator.cpp b/obj/NiBlendTransformInterpolator.cpp
index ab874da4..a6ac9f01 100644
--- a/obj/NiBlendTransformInterpolator.cpp
+++ b/obj/NiBlendTransformInterpolator.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBlendTransformInterpolator.h"
+#include "obj/NiBlendTransformInterpolator.h"
 
 //Definition of TYPE constant
 const Type NiBlendTransformInterpolator::TYPE("NiBlendTransformInterpolator", &NI_BLEND_TRANSFORM_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiBlendTransformInterpolator.h b/obj/NiBlendTransformInterpolator.h
index a8644c84..9d55e220 100644
--- a/obj/NiBlendTransformInterpolator.h
+++ b/obj/NiBlendTransformInterpolator.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBLENDTRANSFORMINTERPOLATOR_H_
 #define _NIBLENDTRANSFORMINTERPOLATOR_H_
 
+#include "NiBlendInterpolator.h"
+
 #include "gen/obj_defines.h"
-#include NI_BLEND_TRANSFORM_INTERPOLATOR_INCLUDE
 
 /*
  * NiBlendTransformInterpolator
diff --git a/obj/NiBoneLODController.cpp b/obj/NiBoneLODController.cpp
index 69e6e4da..2bd71632 100644
--- a/obj/NiBoneLODController.cpp
+++ b/obj/NiBoneLODController.cpp
@@ -1,10 +1,9 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBoneLODController.h"
-#include "NiTriShape.h"
-#include "NiSkinInstance.h"
-#include "NiTriShape.h"
+#include "obj/NiBoneLODController.h"
+#include "gen/SkinShapeGroup.h"
+#include "gen/SkinShape.h"
 
 //Definition of TYPE constant
 const Type NiBoneLODController::TYPE("NiBoneLODController", &NI_BONE_L_O_D_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiBoneLODController.h b/obj/NiBoneLODController.h
index a6620b8b..558c9ea6 100644
--- a/obj/NiBoneLODController.h
+++ b/obj/NiBoneLODController.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBONELODCONTROLLER_H_
 #define _NIBONELODCONTROLLER_H_
 
+#include "ABoneLODController.h"
+#include "gen/SkinShapeGroup.h"
+#include "Ref.h"
+#include "obj/NiTriShape.h"
+
 #include "gen/obj_defines.h"
-#include NI_BONE_L_O_D_CONTROLLER_INCLUDE
 
 /*
  * NiBoneLODController
diff --git a/obj/NiBoolData.cpp b/obj/NiBoolData.cpp
index 0baae004..8e59e2c8 100644
--- a/obj/NiBoolData.cpp
+++ b/obj/NiBoolData.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBoolData.h"
+#include "obj/NiBoolData.h"
+#include "gen/KeyGroup.h"
 
 //Definition of TYPE constant
 const Type NiBoolData::TYPE("NiBoolData", &NI_BOOL_DATA_PARENT::TYPE );
diff --git a/obj/NiBoolData.h b/obj/NiBoolData.h
index 6d460e6b..e5523245 100644
--- a/obj/NiBoolData.h
+++ b/obj/NiBoolData.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBOOLDATA_H_
 #define _NIBOOLDATA_H_
 
+#include "AKeyedData.h"
+#include "gen/KeyGroup.h"
+
 #include "gen/obj_defines.h"
-#include NI_BOOL_DATA_INCLUDE
 
 /*
  * NiBoolData
diff --git a/obj/NiBoolInterpolator.cpp b/obj/NiBoolInterpolator.cpp
index ec3608f3..a8465d1e 100644
--- a/obj/NiBoolInterpolator.cpp
+++ b/obj/NiBoolInterpolator.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBoolInterpolator.h"
-#include "NiBoolData.h"
+#include "obj/NiBoolInterpolator.h"
 
 //Definition of TYPE constant
 const Type NiBoolInterpolator::TYPE("NiBoolInterpolator", &NI_BOOL_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiBoolInterpolator.h b/obj/NiBoolInterpolator.h
index 91a28660..5f8bcb3c 100644
--- a/obj/NiBoolInterpolator.h
+++ b/obj/NiBoolInterpolator.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBOOLINTERPOLATOR_H_
 #define _NIBOOLINTERPOLATOR_H_
 
+#include "NiInterpolator.h"
+#include "Ref.h"
+#include "obj/NiBoolData.h"
+
 #include "gen/obj_defines.h"
-#include NI_BOOL_INTERPOLATOR_INCLUDE
 
 /*
  * NiBoolInterpolator
diff --git a/obj/NiBoolTimelineInterpolator.cpp b/obj/NiBoolTimelineInterpolator.cpp
index eaa3b137..2a43771f 100644
--- a/obj/NiBoolTimelineInterpolator.cpp
+++ b/obj/NiBoolTimelineInterpolator.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBoolTimelineInterpolator.h"
-#include "NiBoolData.h"
+#include "obj/NiBoolTimelineInterpolator.h"
 
 //Definition of TYPE constant
 const Type NiBoolTimelineInterpolator::TYPE("NiBoolTimelineInterpolator", &NI_BOOL_TIMELINE_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiBoolTimelineInterpolator.h b/obj/NiBoolTimelineInterpolator.h
index d932cd3c..7770bc4a 100644
--- a/obj/NiBoolTimelineInterpolator.h
+++ b/obj/NiBoolTimelineInterpolator.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBOOLTIMELINEINTERPOLATOR_H_
 #define _NIBOOLTIMELINEINTERPOLATOR_H_
 
+#include "NiInterpolator.h"
+#include "Ref.h"
+#include "obj/NiBoolData.h"
+
 #include "gen/obj_defines.h"
-#include NI_BOOL_TIMELINE_INTERPOLATOR_INCLUDE
 
 /*
  * NiBoolTimelineInterpolator
diff --git a/obj/NiBooleanExtraData.cpp b/obj/NiBooleanExtraData.cpp
index 1e8be0a5..8d0d4821 100644
--- a/obj/NiBooleanExtraData.cpp
+++ b/obj/NiBooleanExtraData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiBooleanExtraData.h"
+#include "obj/NiBooleanExtraData.h"
 
 //Definition of TYPE constant
 const Type NiBooleanExtraData::TYPE("NiBooleanExtraData", &NI_BOOLEAN_EXTRA_DATA_PARENT::TYPE );
diff --git a/obj/NiBooleanExtraData.h b/obj/NiBooleanExtraData.h
index 0043b25f..39e602a3 100644
--- a/obj/NiBooleanExtraData.h
+++ b/obj/NiBooleanExtraData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIBOOLEANEXTRADATA_H_
 #define _NIBOOLEANEXTRADATA_H_
 
+#include "NiExtraData.h"
+
 #include "gen/obj_defines.h"
-#include NI_BOOLEAN_EXTRA_DATA_INCLUDE
 
 /*
  * NiBooleanExtraData
diff --git a/obj/NiCamera.cpp b/obj/NiCamera.cpp
index 84b0ad2d..91325222 100644
--- a/obj/NiCamera.cpp
+++ b/obj/NiCamera.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiCamera.h"
-#include "NiObject.h"
+#include "obj/NiCamera.h"
 
 //Definition of TYPE constant
 const Type NiCamera::TYPE("NiCamera", &NI_CAMERA_PARENT::TYPE );
diff --git a/obj/NiCamera.h b/obj/NiCamera.h
index 72f9be44..9bbb1d3b 100644
--- a/obj/NiCamera.h
+++ b/obj/NiCamera.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NICAMERA_H_
 #define _NICAMERA_H_
 
+#include "NiAVObject.h"
+#include "Ref.h"
+#include "obj/NiObject.h"
+
 #include "gen/obj_defines.h"
-#include NI_CAMERA_INCLUDE
 
 /*
  * NiCamera
diff --git a/obj/NiCollisionData.cpp b/obj/NiCollisionData.cpp
index d392e31f..1d36ee58 100644
--- a/obj/NiCollisionData.cpp
+++ b/obj/NiCollisionData.cpp
@@ -1,8 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiCollisionData.h"
-#include "NiNode.h"
+#include "obj/NiCollisionData.h"
+#include "obj/NiNode.h"
 
 //Definition of TYPE constant
 const Type NiCollisionData::TYPE("NiCollisionData", &NI_COLLISION_DATA_PARENT::TYPE );
diff --git a/obj/NiCollisionData.h b/obj/NiCollisionData.h
index 4ef013ed..c565f2eb 100644
--- a/obj/NiCollisionData.h
+++ b/obj/NiCollisionData.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NICOLLISIONDATA_H_
 #define _NICOLLISIONDATA_H_
 
+#include "NiObject.h"
+class NiNode;
+
 #include "gen/obj_defines.h"
-#include NI_COLLISION_DATA_INCLUDE
 
 /*
  * NiCollisionData
diff --git a/obj/NiCollisionObject.cpp b/obj/NiCollisionObject.cpp
index 10a4483a..afa4ab66 100644
--- a/obj/NiCollisionObject.cpp
+++ b/obj/NiCollisionObject.cpp
@@ -1,9 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiCollisionObject.h"
-#include "NiAVObject.h"
-#include "NiObject.h"
+#include "obj/NiCollisionObject.h"
+#include "obj/NiAVObject.h"
 
 //Definition of TYPE constant
 const Type NiCollisionObject::TYPE("NiCollisionObject", &NI_COLLISION_OBJECT_PARENT::TYPE );
diff --git a/obj/NiCollisionObject.h b/obj/NiCollisionObject.h
index 0edd7f8b..c4bc8342 100644
--- a/obj/NiCollisionObject.h
+++ b/obj/NiCollisionObject.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NICOLLISIONOBJECT_H_
 #define _NICOLLISIONOBJECT_H_
 
+#include "NiObject.h"
+#include "Ref.h"
+#include "obj/NiObject.h"
+class NiAVObject;
+
 #include "gen/obj_defines.h"
-#include NI_COLLISION_OBJECT_INCLUDE
 
 /*
  * NiCollisionObject
diff --git a/obj/NiColorData.cpp b/obj/NiColorData.cpp
index b4ce5fa8..123842ad 100644
--- a/obj/NiColorData.cpp
+++ b/obj/NiColorData.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiColorData.h"
+#include "obj/NiColorData.h"
+#include "gen/KeyGroup.h"
 
 //Definition of TYPE constant
 const Type NiColorData::TYPE("NiColorData", &NI_COLOR_DATA_PARENT::TYPE );
diff --git a/obj/NiColorData.h b/obj/NiColorData.h
index 93375395..3ab0dd86 100644
--- a/obj/NiColorData.h
+++ b/obj/NiColorData.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NICOLORDATA_H_
 #define _NICOLORDATA_H_
 
+#include "AKeyedData.h"
+#include "gen/KeyGroup.h"
+
 #include "gen/obj_defines.h"
-#include NI_COLOR_DATA_INCLUDE
 
 /*
  * NiColorData
diff --git a/obj/NiColorExtraData.cpp b/obj/NiColorExtraData.cpp
index bc434c06..0a21f89d 100644
--- a/obj/NiColorExtraData.cpp
+++ b/obj/NiColorExtraData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiColorExtraData.h"
+#include "obj/NiColorExtraData.h"
 
 //Definition of TYPE constant
 const Type NiColorExtraData::TYPE("NiColorExtraData", &NI_COLOR_EXTRA_DATA_PARENT::TYPE );
diff --git a/obj/NiColorExtraData.h b/obj/NiColorExtraData.h
index 8b98f6ca..96b9c6e2 100644
--- a/obj/NiColorExtraData.h
+++ b/obj/NiColorExtraData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NICOLOREXTRADATA_H_
 #define _NICOLOREXTRADATA_H_
 
+#include "NiExtraData.h"
+
 #include "gen/obj_defines.h"
-#include NI_COLOR_EXTRA_DATA_INCLUDE
 
 /*
  * NiColorExtraData
diff --git a/obj/NiControllerManager.cpp b/obj/NiControllerManager.cpp
index 06564a4e..85b63cfe 100644
--- a/obj/NiControllerManager.cpp
+++ b/obj/NiControllerManager.cpp
@@ -1,9 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiControllerManager.h"
-#include "NiControllerSequence.h"
-#include "NiDefaultAVObjectPalette.h"
+#include "obj/NiControllerManager.h"
 
 //Definition of TYPE constant
 const Type NiControllerManager::TYPE("NiControllerManager", &NI_CONTROLLER_MANAGER_PARENT::TYPE );
diff --git a/obj/NiControllerManager.h b/obj/NiControllerManager.h
index 6835fef7..05d16335 100644
--- a/obj/NiControllerManager.h
+++ b/obj/NiControllerManager.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NICONTROLLERMANAGER_H_
 #define _NICONTROLLERMANAGER_H_
 
+#include "NiTimeController.h"
+#include "Ref.h"
+#include "obj/NiControllerSequence.h"
+#include "obj/NiDefaultAVObjectPalette.h"
+
 #include "gen/obj_defines.h"
-#include NI_CONTROLLER_MANAGER_INCLUDE
 
 /*
  * NiControllerManager
diff --git a/obj/NiControllerSequence.cpp b/obj/NiControllerSequence.cpp
index 4d5c53a3..dd6762d0 100644
--- a/obj/NiControllerSequence.cpp
+++ b/obj/NiControllerSequence.cpp
@@ -1,14 +1,10 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiControllerSequence.h"
-#include "NiInterpolator.h"
-#include "NiStringPalette.h"
-#include "NiInterpolator.h"
-#include "NiStringPalette.h"
-#include "NiTextKeyExtraData.h"
-#include "NiControllerManager.h"
-#include "NiStringPalette.h"
+#include "obj/NiControllerSequence.h"
+#include "gen/ControllerLink.h"
+#include "gen/ControllerLink.h"
+#include "obj/NiControllerManager.h"
 
 //Definition of TYPE constant
 const Type NiControllerSequence::TYPE("NiControllerSequence", &NI_CONTROLLER_SEQUENCE_PARENT::TYPE );
diff --git a/obj/NiControllerSequence.h b/obj/NiControllerSequence.h
index 75c9e191..4e37ece1 100644
--- a/obj/NiControllerSequence.h
+++ b/obj/NiControllerSequence.h
@@ -4,8 +4,14 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NICONTROLLERSEQUENCE_H_
 #define _NICONTROLLERSEQUENCE_H_
 
+#include "NiObject.h"
+#include "gen/ControllerLink.h"
+#include "Ref.h"
+#include "obj/NiTextKeyExtraData.h"
+#include "obj/NiStringPalette.h"
+class NiControllerManager;
+
 #include "gen/obj_defines.h"
-#include NI_CONTROLLER_SEQUENCE_INCLUDE
 
 /*
  * NiControllerSequence
diff --git a/obj/NiDefaultAVObjectPalette.cpp b/obj/NiDefaultAVObjectPalette.cpp
index af652750..ee62f516 100644
--- a/obj/NiDefaultAVObjectPalette.cpp
+++ b/obj/NiDefaultAVObjectPalette.cpp
@@ -1,8 +1,9 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiDefaultAVObjectPalette.h"
-#include "NiAVObject.h"
+#include "obj/NiDefaultAVObjectPalette.h"
+#include "gen/AVObject.h"
+#include "obj/NiAVObject.h"
 
 //Definition of TYPE constant
 const Type NiDefaultAVObjectPalette::TYPE("NiDefaultAVObjectPalette", &NI_DEFAULT_A_V_OBJECT_PALETTE_PARENT::TYPE );
diff --git a/obj/NiDefaultAVObjectPalette.h b/obj/NiDefaultAVObjectPalette.h
index fe6db48f..f356f24f 100644
--- a/obj/NiDefaultAVObjectPalette.h
+++ b/obj/NiDefaultAVObjectPalette.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIDEFAULTAVOBJECTPALETTE_H_
 #define _NIDEFAULTAVOBJECTPALETTE_H_
 
+#include "NiObject.h"
+#include "gen/AVObject.h"
+
 #include "gen/obj_defines.h"
-#include NI_DEFAULT_A_V_OBJECT_PALETTE_INCLUDE
 
 /*
  * NiDefaultAVObjectPalette
diff --git a/obj/NiDirectionalLight.cpp b/obj/NiDirectionalLight.cpp
index 1a52183d..1e76e42d 100644
--- a/obj/NiDirectionalLight.cpp
+++ b/obj/NiDirectionalLight.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiDirectionalLight.h"
+#include "obj/NiDirectionalLight.h"
 
 //Definition of TYPE constant
 const Type NiDirectionalLight::TYPE("NiDirectionalLight", &NI_DIRECTIONAL_LIGHT_PARENT::TYPE );
diff --git a/obj/NiDirectionalLight.h b/obj/NiDirectionalLight.h
index d2694bbb..3004a491 100644
--- a/obj/NiDirectionalLight.h
+++ b/obj/NiDirectionalLight.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIDIRECTIONALLIGHT_H_
 #define _NIDIRECTIONALLIGHT_H_
 
+#include "NiLight.h"
+
 #include "gen/obj_defines.h"
-#include NI_DIRECTIONAL_LIGHT_INCLUDE
 
 /*
  * NiDirectionalLight
diff --git a/obj/NiDitherProperty.cpp b/obj/NiDitherProperty.cpp
index 0cd930c2..ed4989d3 100644
--- a/obj/NiDitherProperty.cpp
+++ b/obj/NiDitherProperty.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiDitherProperty.h"
+#include "obj/NiDitherProperty.h"
 
 //Definition of TYPE constant
 const Type NiDitherProperty::TYPE("NiDitherProperty", &NI_DITHER_PROPERTY_PARENT::TYPE );
diff --git a/obj/NiDitherProperty.h b/obj/NiDitherProperty.h
index c1b57c25..1c493b5d 100644
--- a/obj/NiDitherProperty.h
+++ b/obj/NiDitherProperty.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIDITHERPROPERTY_H_
 #define _NIDITHERPROPERTY_H_
 
+#include "NiProperty.h"
+
 #include "gen/obj_defines.h"
-#include NI_DITHER_PROPERTY_INCLUDE
 
 /*
  * NiDitherProperty
diff --git a/obj/NiDynamicEffect.cpp b/obj/NiDynamicEffect.cpp
index c44a73de..e8f65828 100644
--- a/obj/NiDynamicEffect.cpp
+++ b/obj/NiDynamicEffect.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiDynamicEffect.h"
-#include "NiAVObject.h"
+#include "obj/NiDynamicEffect.h"
 
 //Definition of TYPE constant
 const Type NiDynamicEffect::TYPE("NiDynamicEffect", &NI_DYNAMIC_EFFECT_PARENT::TYPE );
diff --git a/obj/NiDynamicEffect.h b/obj/NiDynamicEffect.h
index 713f7ba5..82d9a5e4 100644
--- a/obj/NiDynamicEffect.h
+++ b/obj/NiDynamicEffect.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIDYNAMICEFFECT_H_
 #define _NIDYNAMICEFFECT_H_
 
+#include "NiAVObject.h"
+#include "Ref.h"
+#include "obj/NiAVObject.h"
+
 #include "gen/obj_defines.h"
-#include NI_DYNAMIC_EFFECT_INCLUDE
 
 /*
  * NiDynamicEffect
diff --git a/obj/NiExtraData.cpp b/obj/NiExtraData.cpp
index 1f108e0b..2ce91172 100644
--- a/obj/NiExtraData.cpp
+++ b/obj/NiExtraData.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiExtraData.h"
-#include "NiExtraData.h"
+#include "obj/NiExtraData.h"
 
 //Definition of TYPE constant
 const Type NiExtraData::TYPE("NiExtraData", &NI_EXTRA_DATA_PARENT::TYPE );
diff --git a/obj/NiExtraData.h b/obj/NiExtraData.h
index c18c002e..59650985 100644
--- a/obj/NiExtraData.h
+++ b/obj/NiExtraData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIEXTRADATA_H_
 #define _NIEXTRADATA_H_
 
+#include "NiObject.h"
+
 #include "gen/obj_defines.h"
-#include NI_EXTRA_DATA_INCLUDE
 
 /*
  * NiExtraData
diff --git a/obj/NiFlipController.cpp b/obj/NiFlipController.cpp
index 5c967fa5..fd2fa62c 100644
--- a/obj/NiFlipController.cpp
+++ b/obj/NiFlipController.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiFlipController.h"
-#include "NiSourceTexture.h"
+#include "obj/NiFlipController.h"
 
 //Definition of TYPE constant
 const Type NiFlipController::TYPE("NiFlipController", &NI_FLIP_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiFlipController.h b/obj/NiFlipController.h
index 1d731c6b..34d2c0ca 100644
--- a/obj/NiFlipController.h
+++ b/obj/NiFlipController.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIFLIPCONTROLLER_H_
 #define _NIFLIPCONTROLLER_H_
 
+#include "NiSingleInterpolatorController.h"
+#include "Ref.h"
+#include "obj/NiSourceTexture.h"
+
 #include "gen/obj_defines.h"
-#include NI_FLIP_CONTROLLER_INCLUDE
 
 /*
  * NiFlipController
diff --git a/obj/NiFloatData.cpp b/obj/NiFloatData.cpp
index 5fe838a4..3e4b147b 100644
--- a/obj/NiFloatData.cpp
+++ b/obj/NiFloatData.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiFloatData.h"
+#include "obj/NiFloatData.h"
+#include "gen/KeyGroup.h"
 
 //Definition of TYPE constant
 const Type NiFloatData::TYPE("NiFloatData", &NI_FLOAT_DATA_PARENT::TYPE );
diff --git a/obj/NiFloatData.h b/obj/NiFloatData.h
index 4e2e4b9c..8a056773 100644
--- a/obj/NiFloatData.h
+++ b/obj/NiFloatData.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIFLOATDATA_H_
 #define _NIFLOATDATA_H_
 
+#include "AKeyedData.h"
+#include "gen/KeyGroup.h"
+
 #include "gen/obj_defines.h"
-#include NI_FLOAT_DATA_INCLUDE
 
 /*
  * NiFloatData
diff --git a/obj/NiFloatExtraData.cpp b/obj/NiFloatExtraData.cpp
index 3a5cc36e..ff967566 100644
--- a/obj/NiFloatExtraData.cpp
+++ b/obj/NiFloatExtraData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiFloatExtraData.h"
+#include "obj/NiFloatExtraData.h"
 
 //Definition of TYPE constant
 const Type NiFloatExtraData::TYPE("NiFloatExtraData", &NI_FLOAT_EXTRA_DATA_PARENT::TYPE );
diff --git a/obj/NiFloatExtraData.h b/obj/NiFloatExtraData.h
index 6657cc7a..a0b359fa 100644
--- a/obj/NiFloatExtraData.h
+++ b/obj/NiFloatExtraData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIFLOATEXTRADATA_H_
 #define _NIFLOATEXTRADATA_H_
 
+#include "NiExtraData.h"
+
 #include "gen/obj_defines.h"
-#include NI_FLOAT_EXTRA_DATA_INCLUDE
 
 /*
  * NiFloatExtraData
diff --git a/obj/NiFloatExtraDataController.cpp b/obj/NiFloatExtraDataController.cpp
index 546290d6..c439f743 100644
--- a/obj/NiFloatExtraDataController.cpp
+++ b/obj/NiFloatExtraDataController.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiFloatExtraDataController.h"
-#include "NiObject.h"
+#include "obj/NiFloatExtraDataController.h"
 
 //Definition of TYPE constant
 const Type NiFloatExtraDataController::TYPE("NiFloatExtraDataController", &NI_FLOAT_EXTRA_DATA_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiFloatExtraDataController.h b/obj/NiFloatExtraDataController.h
index a72c60eb..1379c1b6 100644
--- a/obj/NiFloatExtraDataController.h
+++ b/obj/NiFloatExtraDataController.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIFLOATEXTRADATACONTROLLER_H_
 #define _NIFLOATEXTRADATACONTROLLER_H_
 
+#include "NiTimeController.h"
+#include "Ref.h"
+#include "obj/NiObject.h"
+
 #include "gen/obj_defines.h"
-#include NI_FLOAT_EXTRA_DATA_CONTROLLER_INCLUDE
 
 /*
  * NiFloatExtraDataController
diff --git a/obj/NiFloatInterpolator.cpp b/obj/NiFloatInterpolator.cpp
index 81457d0e..f2a795ca 100644
--- a/obj/NiFloatInterpolator.cpp
+++ b/obj/NiFloatInterpolator.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiFloatInterpolator.h"
-#include "NiFloatData.h"
+#include "obj/NiFloatInterpolator.h"
 
 //Definition of TYPE constant
 const Type NiFloatInterpolator::TYPE("NiFloatInterpolator", &NI_FLOAT_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiFloatInterpolator.h b/obj/NiFloatInterpolator.h
index b116373f..8aca0878 100644
--- a/obj/NiFloatInterpolator.h
+++ b/obj/NiFloatInterpolator.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIFLOATINTERPOLATOR_H_
 #define _NIFLOATINTERPOLATOR_H_
 
+#include "NiInterpolator.h"
+#include "Ref.h"
+#include "obj/NiFloatData.h"
+
 #include "gen/obj_defines.h"
-#include NI_FLOAT_INTERPOLATOR_INCLUDE
 
 /*
  * NiFloatInterpolator
diff --git a/obj/NiFloatsExtraData.cpp b/obj/NiFloatsExtraData.cpp
index cc2a67fa..665ee907 100644
--- a/obj/NiFloatsExtraData.cpp
+++ b/obj/NiFloatsExtraData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiFloatsExtraData.h"
+#include "obj/NiFloatsExtraData.h"
 
 //Definition of TYPE constant
 const Type NiFloatsExtraData::TYPE("NiFloatsExtraData", &NI_FLOATS_EXTRA_DATA_PARENT::TYPE );
diff --git a/obj/NiFloatsExtraData.h b/obj/NiFloatsExtraData.h
index 3202b9c5..4abd7e75 100644
--- a/obj/NiFloatsExtraData.h
+++ b/obj/NiFloatsExtraData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIFLOATSEXTRADATA_H_
 #define _NIFLOATSEXTRADATA_H_
 
+#include "NiExtraData.h"
+
 #include "gen/obj_defines.h"
-#include NI_FLOATS_EXTRA_DATA_INCLUDE
 
 /*
  * NiFloatsExtraData
diff --git a/obj/NiFogProperty.cpp b/obj/NiFogProperty.cpp
index 24f5f2fd..a3ce9992 100644
--- a/obj/NiFogProperty.cpp
+++ b/obj/NiFogProperty.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiFogProperty.h"
+#include "obj/NiFogProperty.h"
 
 //Definition of TYPE constant
 const Type NiFogProperty::TYPE("NiFogProperty", &NI_FOG_PROPERTY_PARENT::TYPE );
diff --git a/obj/NiFogProperty.h b/obj/NiFogProperty.h
index 23c6b554..4567e1b7 100644
--- a/obj/NiFogProperty.h
+++ b/obj/NiFogProperty.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIFOGPROPERTY_H_
 #define _NIFOGPROPERTY_H_
 
+#include "NiProperty.h"
+
 #include "gen/obj_defines.h"
-#include NI_FOG_PROPERTY_INCLUDE
 
 /*
  * NiFogProperty
diff --git a/obj/NiGeomMorpherController.cpp b/obj/NiGeomMorpherController.cpp
index b243a84f..844e6646 100644
--- a/obj/NiGeomMorpherController.cpp
+++ b/obj/NiGeomMorpherController.cpp
@@ -1,9 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiGeomMorpherController.h"
-#include "NiMorphData.h"
-#include "NiInterpolator.h"
+#include "obj/NiGeomMorpherController.h"
 
 //Definition of TYPE constant
 const Type NiGeomMorpherController::TYPE("NiGeomMorpherController", &NI_GEOM_MORPHER_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiGeomMorpherController.h b/obj/NiGeomMorpherController.h
index df116b5b..21a04f8a 100644
--- a/obj/NiGeomMorpherController.h
+++ b/obj/NiGeomMorpherController.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIGEOMMORPHERCONTROLLER_H_
 #define _NIGEOMMORPHERCONTROLLER_H_
 
+#include "NiTimeController.h"
+#include "Ref.h"
+#include "obj/NiMorphData.h"
+#include "obj/NiInterpolator.h"
+
 #include "gen/obj_defines.h"
-#include NI_GEOM_MORPHER_CONTROLLER_INCLUDE
 
 /*
  * NiGeomMorpherController
diff --git a/obj/NiGravity.cpp b/obj/NiGravity.cpp
index f7eea5d9..87073626 100644
--- a/obj/NiGravity.cpp
+++ b/obj/NiGravity.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiGravity.h"
+#include "obj/NiGravity.h"
 
 //Definition of TYPE constant
 const Type NiGravity::TYPE("NiGravity", &NI_GRAVITY_PARENT::TYPE );
diff --git a/obj/NiGravity.h b/obj/NiGravity.h
index 433cdf03..023d8da7 100644
--- a/obj/NiGravity.h
+++ b/obj/NiGravity.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIGRAVITY_H_
 #define _NIGRAVITY_H_
 
+#include "AParticleModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_GRAVITY_INCLUDE
 
 /*
  * NiGravity
diff --git a/obj/NiIntegerExtraData.cpp b/obj/NiIntegerExtraData.cpp
index 66d9c075..a50aff6f 100644
--- a/obj/NiIntegerExtraData.cpp
+++ b/obj/NiIntegerExtraData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiIntegerExtraData.h"
+#include "obj/NiIntegerExtraData.h"
 
 //Definition of TYPE constant
 const Type NiIntegerExtraData::TYPE("NiIntegerExtraData", &NI_INTEGER_EXTRA_DATA_PARENT::TYPE );
diff --git a/obj/NiIntegerExtraData.h b/obj/NiIntegerExtraData.h
index e3152e63..d164271d 100644
--- a/obj/NiIntegerExtraData.h
+++ b/obj/NiIntegerExtraData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIINTEGEREXTRADATA_H_
 #define _NIINTEGEREXTRADATA_H_
 
+#include "NiExtraData.h"
+
 #include "gen/obj_defines.h"
-#include NI_INTEGER_EXTRA_DATA_INCLUDE
 
 /*
  * NiIntegerExtraData
diff --git a/obj/NiIntegersExtraData.cpp b/obj/NiIntegersExtraData.cpp
index d084a35e..1ab06e49 100644
--- a/obj/NiIntegersExtraData.cpp
+++ b/obj/NiIntegersExtraData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiIntegersExtraData.h"
+#include "obj/NiIntegersExtraData.h"
 
 //Definition of TYPE constant
 const Type NiIntegersExtraData::TYPE("NiIntegersExtraData", &NI_INTEGERS_EXTRA_DATA_PARENT::TYPE );
diff --git a/obj/NiIntegersExtraData.h b/obj/NiIntegersExtraData.h
index 6fe72ab7..a74d4f63 100644
--- a/obj/NiIntegersExtraData.h
+++ b/obj/NiIntegersExtraData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIINTEGERSEXTRADATA_H_
 #define _NIINTEGERSEXTRADATA_H_
 
+#include "NiExtraData.h"
+
 #include "gen/obj_defines.h"
-#include NI_INTEGERS_EXTRA_DATA_INCLUDE
 
 /*
  * NiIntegersExtraData
diff --git a/obj/NiInterpolator.cpp b/obj/NiInterpolator.cpp
index 3ed20dd4..167a4528 100644
--- a/obj/NiInterpolator.cpp
+++ b/obj/NiInterpolator.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiInterpolator.h"
+#include "obj/NiInterpolator.h"
 
 //Definition of TYPE constant
 const Type NiInterpolator::TYPE("NiInterpolator", &NI_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiInterpolator.h b/obj/NiInterpolator.h
index 09ccec4f..3496961d 100644
--- a/obj/NiInterpolator.h
+++ b/obj/NiInterpolator.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIINTERPOLATOR_H_
 #define _NIINTERPOLATOR_H_
 
+#include "NiObject.h"
+
 #include "gen/obj_defines.h"
-#include NI_INTERPOLATOR_INCLUDE
 
 /*
  * NiInterpolator
diff --git a/obj/NiKeyframeController.cpp b/obj/NiKeyframeController.cpp
index ab08ddbe..9198718b 100644
--- a/obj/NiKeyframeController.cpp
+++ b/obj/NiKeyframeController.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiKeyframeController.h"
-#include "NiKeyframeData.h"
+#include "obj/NiKeyframeController.h"
 
 //Definition of TYPE constant
 const Type NiKeyframeController::TYPE("NiKeyframeController", &NI_KEYFRAME_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiKeyframeController.h b/obj/NiKeyframeController.h
index 1578d7af..bba445f6 100644
--- a/obj/NiKeyframeController.h
+++ b/obj/NiKeyframeController.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIKEYFRAMECONTROLLER_H_
 #define _NIKEYFRAMECONTROLLER_H_
 
+#include "NiTimeController.h"
+#include "Ref.h"
+#include "obj/NiKeyframeData.h"
+
 #include "gen/obj_defines.h"
-#include NI_KEYFRAME_CONTROLLER_INCLUDE
 
 /*
  * NiKeyframeController
diff --git a/obj/NiKeyframeData.cpp b/obj/NiKeyframeData.cpp
index 81f43815..379887f5 100644
--- a/obj/NiKeyframeData.cpp
+++ b/obj/NiKeyframeData.cpp
@@ -1,7 +1,10 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiKeyframeData.h"
+#include "obj/NiKeyframeData.h"
+#include "gen/KeyGroup.h"
+#include "gen/KeyGroup.h"
+#include "gen/KeyGroup.h"
 
 //Definition of TYPE constant
 const Type NiKeyframeData::TYPE("NiKeyframeData", &NI_KEYFRAME_DATA_PARENT::TYPE );
diff --git a/obj/NiKeyframeData.h b/obj/NiKeyframeData.h
index d04b7363..434a72f5 100644
--- a/obj/NiKeyframeData.h
+++ b/obj/NiKeyframeData.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIKEYFRAMEDATA_H_
 #define _NIKEYFRAMEDATA_H_
 
+#include "AKeyedData.h"
+#include "gen/KeyGroup.h"
+
 #include "gen/obj_defines.h"
-#include NI_KEYFRAME_DATA_INCLUDE
 
 /*
  * NiKeyframeData
diff --git a/obj/NiLODNode.cpp b/obj/NiLODNode.cpp
index bc146935..62103d6b 100644
--- a/obj/NiLODNode.cpp
+++ b/obj/NiLODNode.cpp
@@ -1,8 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiLODNode.h"
-#include "NiRangeLODData.h"
+#include "obj/NiLODNode.h"
+#include "gen/LODRange.h"
 
 //Definition of TYPE constant
 const Type NiLODNode::TYPE("NiLODNode", &NI_L_O_D_NODE_PARENT::TYPE );
diff --git a/obj/NiLODNode.h b/obj/NiLODNode.h
index 0a93cce9..a4c6bce5 100644
--- a/obj/NiLODNode.h
+++ b/obj/NiLODNode.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NILODNODE_H_
 #define _NILODNODE_H_
 
+#include "NiNode.h"
+#include "gen/LODRange.h"
+#include "Ref.h"
+#include "obj/NiRangeLODData.h"
+
 #include "gen/obj_defines.h"
-#include NI_L_O_D_NODE_INCLUDE
 
 /*
  * NiLODNode
diff --git a/obj/NiLight.cpp b/obj/NiLight.cpp
index d27ecbbe..e0a2791e 100644
--- a/obj/NiLight.cpp
+++ b/obj/NiLight.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiLight.h"
+#include "obj/NiLight.h"
 
 //Definition of TYPE constant
 const Type NiLight::TYPE("NiLight", &NI_LIGHT_PARENT::TYPE );
diff --git a/obj/NiLight.h b/obj/NiLight.h
index 5bc5c652..c1c67d0c 100644
--- a/obj/NiLight.h
+++ b/obj/NiLight.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NILIGHT_H_
 #define _NILIGHT_H_
 
+#include "NiDynamicEffect.h"
+
 #include "gen/obj_defines.h"
-#include NI_LIGHT_INCLUDE
 
 /*
  * NiLight
diff --git a/obj/NiLightColorController.cpp b/obj/NiLightColorController.cpp
index c8a05ce8..3fd04506 100644
--- a/obj/NiLightColorController.cpp
+++ b/obj/NiLightColorController.cpp
@@ -1,9 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiLightColorController.h"
-#include "NiPosData.h"
-#include "NiPoint3Interpolator.h"
+#include "obj/NiLightColorController.h"
 
 //Definition of TYPE constant
 const Type NiLightColorController::TYPE("NiLightColorController", &NI_LIGHT_COLOR_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiLightColorController.h b/obj/NiLightColorController.h
index e9606272..44c7cfd3 100644
--- a/obj/NiLightColorController.h
+++ b/obj/NiLightColorController.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NILIGHTCOLORCONTROLLER_H_
 #define _NILIGHTCOLORCONTROLLER_H_
 
+#include "NiTimeController.h"
+#include "Ref.h"
+#include "obj/NiPosData.h"
+#include "obj/NiPoint3Interpolator.h"
+
 #include "gen/obj_defines.h"
-#include NI_LIGHT_COLOR_CONTROLLER_INCLUDE
 
 /*
  * NiLightColorController
diff --git a/obj/NiLightDimmerController.cpp b/obj/NiLightDimmerController.cpp
index c0fb13f6..4488fab3 100644
--- a/obj/NiLightDimmerController.cpp
+++ b/obj/NiLightDimmerController.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiLightDimmerController.h"
-#include "NiInterpolator.h"
+#include "obj/NiLightDimmerController.h"
 
 //Definition of TYPE constant
 const Type NiLightDimmerController::TYPE("NiLightDimmerController", &NI_LIGHT_DIMMER_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiLightDimmerController.h b/obj/NiLightDimmerController.h
index 74b2d6be..13da433a 100644
--- a/obj/NiLightDimmerController.h
+++ b/obj/NiLightDimmerController.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NILIGHTDIMMERCONTROLLER_H_
 #define _NILIGHTDIMMERCONTROLLER_H_
 
+#include "NiTimeController.h"
+#include "Ref.h"
+#include "obj/NiInterpolator.h"
+
 #include "gen/obj_defines.h"
-#include NI_LIGHT_DIMMER_CONTROLLER_INCLUDE
 
 /*
  * NiLightDimmerController
diff --git a/obj/NiLookAtController.cpp b/obj/NiLookAtController.cpp
index 0c7ca421..fb068ef3 100644
--- a/obj/NiLookAtController.cpp
+++ b/obj/NiLookAtController.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiLookAtController.h"
-#include "NiNode.h"
+#include "obj/NiLookAtController.h"
 
 //Definition of TYPE constant
 const Type NiLookAtController::TYPE("NiLookAtController", &NI_LOOK_AT_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiLookAtController.h b/obj/NiLookAtController.h
index 01b43513..375402fb 100644
--- a/obj/NiLookAtController.h
+++ b/obj/NiLookAtController.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NILOOKATCONTROLLER_H_
 #define _NILOOKATCONTROLLER_H_
 
+#include "NiTimeController.h"
+#include "Ref.h"
+#include "obj/NiNode.h"
+
 #include "gen/obj_defines.h"
-#include NI_LOOK_AT_CONTROLLER_INCLUDE
 
 /*
  * NiLookAtController
diff --git a/obj/NiLookAtInterpolator.cpp b/obj/NiLookAtInterpolator.cpp
index b4f5660c..85970f92 100644
--- a/obj/NiLookAtInterpolator.cpp
+++ b/obj/NiLookAtInterpolator.cpp
@@ -1,11 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiLookAtInterpolator.h"
-#include "NiNode.h"
-#include "NiPoint3Interpolator.h"
-#include "NiFloatInterpolator.h"
-#include "NiFloatInterpolator.h"
+#include "obj/NiLookAtInterpolator.h"
 
 //Definition of TYPE constant
 const Type NiLookAtInterpolator::TYPE("NiLookAtInterpolator", &NI_LOOK_AT_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiLookAtInterpolator.h b/obj/NiLookAtInterpolator.h
index 54d247f0..e954d71f 100644
--- a/obj/NiLookAtInterpolator.h
+++ b/obj/NiLookAtInterpolator.h
@@ -4,8 +4,13 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NILOOKATINTERPOLATOR_H_
 #define _NILOOKATINTERPOLATOR_H_
 
+#include "NiInterpolator.h"
+#include "Ref.h"
+#include "obj/NiNode.h"
+#include "obj/NiPoint3Interpolator.h"
+#include "obj/NiFloatInterpolator.h"
+
 #include "gen/obj_defines.h"
-#include NI_LOOK_AT_INTERPOLATOR_INCLUDE
 
 /*
  * NiLookAtInterpolator
diff --git a/obj/NiMaterialColorController.cpp b/obj/NiMaterialColorController.cpp
index bb5f9dee..3bba5135 100644
--- a/obj/NiMaterialColorController.cpp
+++ b/obj/NiMaterialColorController.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiMaterialColorController.h"
-#include "NiPosData.h"
+#include "obj/NiMaterialColorController.h"
 
 //Definition of TYPE constant
 const Type NiMaterialColorController::TYPE("NiMaterialColorController", &NI_MATERIAL_COLOR_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiMaterialColorController.h b/obj/NiMaterialColorController.h
index 721a1f33..294cf2cd 100644
--- a/obj/NiMaterialColorController.h
+++ b/obj/NiMaterialColorController.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIMATERIALCOLORCONTROLLER_H_
 #define _NIMATERIALCOLORCONTROLLER_H_
 
+#include "NiSingleInterpolatorController.h"
+#include "Ref.h"
+#include "obj/NiPosData.h"
+
 #include "gen/obj_defines.h"
-#include NI_MATERIAL_COLOR_CONTROLLER_INCLUDE
 
 /*
  * NiMaterialColorController
diff --git a/obj/NiMaterialProperty.cpp b/obj/NiMaterialProperty.cpp
index c0eb9f1a..858bdbbe 100644
--- a/obj/NiMaterialProperty.cpp
+++ b/obj/NiMaterialProperty.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiMaterialProperty.h"
+#include "obj/NiMaterialProperty.h"
 
 //Definition of TYPE constant
 const Type NiMaterialProperty::TYPE("NiMaterialProperty", &NI_MATERIAL_PROPERTY_PARENT::TYPE );
diff --git a/obj/NiMaterialProperty.h b/obj/NiMaterialProperty.h
index c92670e8..1a386e20 100644
--- a/obj/NiMaterialProperty.h
+++ b/obj/NiMaterialProperty.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIMATERIALPROPERTY_H_
 #define _NIMATERIALPROPERTY_H_
 
+#include "NiProperty.h"
+
 #include "gen/obj_defines.h"
-#include NI_MATERIAL_PROPERTY_INCLUDE
 
 /*
  * NiMaterialProperty
diff --git a/obj/NiMeshPSysData.cpp b/obj/NiMeshPSysData.cpp
index b4f95cae..6e7ee1aa 100644
--- a/obj/NiMeshPSysData.cpp
+++ b/obj/NiMeshPSysData.cpp
@@ -1,10 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiMeshPSysData.h"
-#include "AParticleModifier.h"
-#include "AParticleModifier.h"
-#include "NiNode.h"
+#include "obj/NiMeshPSysData.h"
 
 //Definition of TYPE constant
 const Type NiMeshPSysData::TYPE("NiMeshPSysData", &NI_MESH_P_SYS_DATA_PARENT::TYPE );
@@ -26,7 +23,7 @@ string NiMeshPSysData::asString( bool verbose ) const {
 }
 
 void NiMeshPSysData::FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version ) {
-	NI_MESH_P_SYS_DATA_FIXLINKS
+  NI_MESH_P_SYS_DATA_FIXLINKS
 }
 
 const Type & NiMeshPSysData::GetType() const {
diff --git a/obj/NiMeshPSysData.h b/obj/NiMeshPSysData.h
index 6530f77a..3962e89e 100644
--- a/obj/NiMeshPSysData.h
+++ b/obj/NiMeshPSysData.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIMESHPSYSDATA_H_
 #define _NIMESHPSYSDATA_H_
 
+#include "APSysData.h"
+#include "Ref.h"
+#include "obj/AParticleModifier.h"
+#include "obj/NiNode.h"
+
 #include "gen/obj_defines.h"
-#include NI_MESH_P_SYS_DATA_INCLUDE
 
 /*
  * NiMeshPSysData
diff --git a/obj/NiMeshParticleSystem.cpp b/obj/NiMeshParticleSystem.cpp
index de5c97e1..90b42e45 100644
--- a/obj/NiMeshParticleSystem.cpp
+++ b/obj/NiMeshParticleSystem.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiMeshParticleSystem.h"
+#include "obj/NiMeshParticleSystem.h"
 
 //Definition of TYPE constant
 const Type NiMeshParticleSystem::TYPE("NiMeshParticleSystem", &NI_MESH_PARTICLE_SYSTEM_PARENT::TYPE );
diff --git a/obj/NiMeshParticleSystem.h b/obj/NiMeshParticleSystem.h
index 10752781..a9e6bb3c 100644
--- a/obj/NiMeshParticleSystem.h
+++ b/obj/NiMeshParticleSystem.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIMESHPARTICLESYSTEM_H_
 #define _NIMESHPARTICLESYSTEM_H_
 
+#include "NiParticleSystem.h"
+
 #include "gen/obj_defines.h"
-#include NI_MESH_PARTICLE_SYSTEM_INCLUDE
 
 /*
  * NiMeshParticleSystem
diff --git a/obj/NiMorphData.cpp b/obj/NiMorphData.cpp
index 53b6816c..9507ee47 100644
--- a/obj/NiMorphData.cpp
+++ b/obj/NiMorphData.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiMorphData.h"
+#include "obj/NiMorphData.h"
+#include "gen/Morph.h"
 
 //Definition of TYPE constant
 const Type NiMorphData::TYPE("NiMorphData", &NI_MORPH_DATA_PARENT::TYPE );
diff --git a/obj/NiMorphData.h b/obj/NiMorphData.h
index 4f33553c..6ca5bf97 100644
--- a/obj/NiMorphData.h
+++ b/obj/NiMorphData.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIMORPHDATA_H_
 #define _NIMORPHDATA_H_
 
+#include "NiObject.h"
+#include "gen/Morph.h"
+
 #include "gen/obj_defines.h"
-#include NI_MORPH_DATA_INCLUDE
 
 /*
  * NiMorphData
diff --git a/obj/NiMultiTargetTransformController.cpp b/obj/NiMultiTargetTransformController.cpp
index 6dbfa704..8e9584a5 100644
--- a/obj/NiMultiTargetTransformController.cpp
+++ b/obj/NiMultiTargetTransformController.cpp
@@ -1,8 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiMultiTargetTransformController.h"
-#include "NiNode.h"
+#include "obj/NiMultiTargetTransformController.h"
+#include "obj/NiNode.h"
 
 //Definition of TYPE constant
 const Type NiMultiTargetTransformController::TYPE("NiMultiTargetTransformController", &NI_MULTI_TARGET_TRANSFORM_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiMultiTargetTransformController.h b/obj/NiMultiTargetTransformController.h
index 9a69900b..c33b7591 100644
--- a/obj/NiMultiTargetTransformController.h
+++ b/obj/NiMultiTargetTransformController.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIMULTITARGETTRANSFORMCONTROLLER_H_
 #define _NIMULTITARGETTRANSFORMCONTROLLER_H_
 
+#include "NiTimeController.h"
+class NiNode;
+
 #include "gen/obj_defines.h"
-#include NI_MULTI_TARGET_TRANSFORM_CONTROLLER_INCLUDE
 
 /*
  * NiMultiTargetTransformController
diff --git a/obj/NiNode.cpp b/obj/NiNode.cpp
index 358c6ab6..ada1f7ec 100644
--- a/obj/NiNode.cpp
+++ b/obj/NiNode.cpp
@@ -1,9 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiNode.h"
-#include "NiAVObject.h"
-#include "NiDynamicEffect.h"
+#include "obj/NiNode.h"
 
 //Definition of TYPE constant
 const Type NiNode::TYPE("NiNode", &NI_NODE_PARENT::TYPE );
diff --git a/obj/NiNode.h b/obj/NiNode.h
index b17f4b3e..637a9b28 100644
--- a/obj/NiNode.h
+++ b/obj/NiNode.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NINODE_H_
 #define _NINODE_H_
 
+#include "NiAVObject.h"
+#include "Ref.h"
+#include "obj/NiAVObject.h"
+#include "obj/NiDynamicEffect.h"
+
 #include "gen/obj_defines.h"
-#include NI_NODE_INCLUDE
 
 /*
  * NiNode
diff --git a/obj/NiPSysAgeDeathModifier.cpp b/obj/NiPSysAgeDeathModifier.cpp
index fd702f07..43bf2f75 100644
--- a/obj/NiPSysAgeDeathModifier.cpp
+++ b/obj/NiPSysAgeDeathModifier.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysAgeDeathModifier.h"
-#include "NiPSysSpawnModifier.h"
+#include "obj/NiPSysAgeDeathModifier.h"
 
 //Definition of TYPE constant
 const Type NiPSysAgeDeathModifier::TYPE("NiPSysAgeDeathModifier", &NI_P_SYS_AGE_DEATH_MODIFIER_PARENT::TYPE );
diff --git a/obj/NiPSysAgeDeathModifier.h b/obj/NiPSysAgeDeathModifier.h
index aa3d0171..c3d63c36 100644
--- a/obj/NiPSysAgeDeathModifier.h
+++ b/obj/NiPSysAgeDeathModifier.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSAGEDEATHMODIFIER_H_
 #define _NIPSYSAGEDEATHMODIFIER_H_
 
+#include "NiPSysModifier.h"
+#include "Ref.h"
+#include "obj/NiPSysSpawnModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_AGE_DEATH_MODIFIER_INCLUDE
 
 /*
  * NiPSysAgeDeathModifier
diff --git a/obj/NiPSysBombModifier.cpp b/obj/NiPSysBombModifier.cpp
index a0e49b53..3a39130d 100644
--- a/obj/NiPSysBombModifier.cpp
+++ b/obj/NiPSysBombModifier.cpp
@@ -1,8 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysBombModifier.h"
-#include "NiNode.h"
+#include "obj/NiPSysBombModifier.h"
+#include "obj/NiNode.h"
 
 //Definition of TYPE constant
 const Type NiPSysBombModifier::TYPE("NiPSysBombModifier", &NI_P_SYS_BOMB_MODIFIER_PARENT::TYPE );
diff --git a/obj/NiPSysBombModifier.h b/obj/NiPSysBombModifier.h
index c5e1e476..fa0afa2c 100644
--- a/obj/NiPSysBombModifier.h
+++ b/obj/NiPSysBombModifier.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSBOMBMODIFIER_H_
 #define _NIPSYSBOMBMODIFIER_H_
 
+#include "NiPSysModifier.h"
+class NiNode;
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_BOMB_MODIFIER_INCLUDE
 
 /*
  * NiPSysBombModifier
diff --git a/obj/NiPSysBoundUpdateModifier.cpp b/obj/NiPSysBoundUpdateModifier.cpp
index d34e7447..29503962 100644
--- a/obj/NiPSysBoundUpdateModifier.cpp
+++ b/obj/NiPSysBoundUpdateModifier.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysBoundUpdateModifier.h"
+#include "obj/NiPSysBoundUpdateModifier.h"
 
 //Definition of TYPE constant
 const Type NiPSysBoundUpdateModifier::TYPE("NiPSysBoundUpdateModifier", &NI_P_SYS_BOUND_UPDATE_MODIFIER_PARENT::TYPE );
diff --git a/obj/NiPSysBoundUpdateModifier.h b/obj/NiPSysBoundUpdateModifier.h
index b194e857..ac32b703 100644
--- a/obj/NiPSysBoundUpdateModifier.h
+++ b/obj/NiPSysBoundUpdateModifier.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSBOUNDUPDATEMODIFIER_H_
 #define _NIPSYSBOUNDUPDATEMODIFIER_H_
 
+#include "NiPSysModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_BOUND_UPDATE_MODIFIER_INCLUDE
 
 /*
  * NiPSysBoundUpdateModifier
diff --git a/obj/NiPSysBoxEmitter.cpp b/obj/NiPSysBoxEmitter.cpp
index 153b5c87..1d5a6795 100644
--- a/obj/NiPSysBoxEmitter.cpp
+++ b/obj/NiPSysBoxEmitter.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysBoxEmitter.h"
+#include "obj/NiPSysBoxEmitter.h"
 
 //Definition of TYPE constant
 const Type NiPSysBoxEmitter::TYPE("NiPSysBoxEmitter", &NI_P_SYS_BOX_EMITTER_PARENT::TYPE );
diff --git a/obj/NiPSysBoxEmitter.h b/obj/NiPSysBoxEmitter.h
index d02c7e14..0234594f 100644
--- a/obj/NiPSysBoxEmitter.h
+++ b/obj/NiPSysBoxEmitter.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSBOXEMITTER_H_
 #define _NIPSYSBOXEMITTER_H_
 
+#include "NiPSysVolumeEmitter.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_BOX_EMITTER_INCLUDE
 
 /*
  * NiPSysBoxEmitter
diff --git a/obj/NiPSysColliderManager.cpp b/obj/NiPSysColliderManager.cpp
index f3b7b0ca..e55fd3c8 100644
--- a/obj/NiPSysColliderManager.cpp
+++ b/obj/NiPSysColliderManager.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysColliderManager.h"
-#include "NiPSysPlanarCollider.h"
+#include "obj/NiPSysColliderManager.h"
 
 //Definition of TYPE constant
 const Type NiPSysColliderManager::TYPE("NiPSysColliderManager", &NI_P_SYS_COLLIDER_MANAGER_PARENT::TYPE );
diff --git a/obj/NiPSysColliderManager.h b/obj/NiPSysColliderManager.h
index 26e941d3..8cdbc34a 100644
--- a/obj/NiPSysColliderManager.h
+++ b/obj/NiPSysColliderManager.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSCOLLIDERMANAGER_H_
 #define _NIPSYSCOLLIDERMANAGER_H_
 
+#include "NiPSysModifier.h"
+#include "Ref.h"
+#include "obj/NiPSysPlanarCollider.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_COLLIDER_MANAGER_INCLUDE
 
 /*
  * NiPSysColliderManager
diff --git a/obj/NiPSysColorModifier.cpp b/obj/NiPSysColorModifier.cpp
index 418332d1..d3eb56c8 100644
--- a/obj/NiPSysColorModifier.cpp
+++ b/obj/NiPSysColorModifier.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysColorModifier.h"
-#include "NiColorData.h"
+#include "obj/NiPSysColorModifier.h"
 
 //Definition of TYPE constant
 const Type NiPSysColorModifier::TYPE("NiPSysColorModifier", &NI_P_SYS_COLOR_MODIFIER_PARENT::TYPE );
diff --git a/obj/NiPSysColorModifier.h b/obj/NiPSysColorModifier.h
index 05b2bb62..aa736713 100644
--- a/obj/NiPSysColorModifier.h
+++ b/obj/NiPSysColorModifier.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSCOLORMODIFIER_H_
 #define _NIPSYSCOLORMODIFIER_H_
 
+#include "NiPSysModifier.h"
+#include "Ref.h"
+#include "obj/NiColorData.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_COLOR_MODIFIER_INCLUDE
 
 /*
  * NiPSysColorModifier
diff --git a/obj/NiPSysCylinderEmitter.cpp b/obj/NiPSysCylinderEmitter.cpp
index 2af13107..6b3066d5 100644
--- a/obj/NiPSysCylinderEmitter.cpp
+++ b/obj/NiPSysCylinderEmitter.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysCylinderEmitter.h"
+#include "obj/NiPSysCylinderEmitter.h"
 
 //Definition of TYPE constant
 const Type NiPSysCylinderEmitter::TYPE("NiPSysCylinderEmitter", &NI_P_SYS_CYLINDER_EMITTER_PARENT::TYPE );
diff --git a/obj/NiPSysCylinderEmitter.h b/obj/NiPSysCylinderEmitter.h
index 8dbe4ce0..75830f6e 100644
--- a/obj/NiPSysCylinderEmitter.h
+++ b/obj/NiPSysCylinderEmitter.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSCYLINDEREMITTER_H_
 #define _NIPSYSCYLINDEREMITTER_H_
 
+#include "NiPSysVolumeEmitter.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_CYLINDER_EMITTER_INCLUDE
 
 /*
  * NiPSysCylinderEmitter
diff --git a/obj/NiPSysData.cpp b/obj/NiPSysData.cpp
index 6bc5fecf..794c7729 100644
--- a/obj/NiPSysData.cpp
+++ b/obj/NiPSysData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysData.h"
+#include "obj/NiPSysData.h"
 
 //Definition of TYPE constant
 const Type NiPSysData::TYPE("NiPSysData", &NI_P_SYS_DATA_PARENT::TYPE );
diff --git a/obj/NiPSysData.h b/obj/NiPSysData.h
index 4c6e076d..76cc27b7 100644
--- a/obj/NiPSysData.h
+++ b/obj/NiPSysData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSDATA_H_
 #define _NIPSYSDATA_H_
 
+#include "APSysData.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_DATA_INCLUDE
 
 /*
  * NiPSysData
diff --git a/obj/NiPSysDragModifier.cpp b/obj/NiPSysDragModifier.cpp
index 29e369aa..142cc1ee 100644
--- a/obj/NiPSysDragModifier.cpp
+++ b/obj/NiPSysDragModifier.cpp
@@ -1,8 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysDragModifier.h"
-#include "NiObject.h"
+#include "obj/NiPSysDragModifier.h"
+#include "obj/NiObject.h"
 
 //Definition of TYPE constant
 const Type NiPSysDragModifier::TYPE("NiPSysDragModifier", &NI_P_SYS_DRAG_MODIFIER_PARENT::TYPE );
diff --git a/obj/NiPSysDragModifier.h b/obj/NiPSysDragModifier.h
index 06e15f2c..ddc4bba3 100644
--- a/obj/NiPSysDragModifier.h
+++ b/obj/NiPSysDragModifier.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSDRAGMODIFIER_H_
 #define _NIPSYSDRAGMODIFIER_H_
 
+#include "NiPSysModifier.h"
+class NiObject;
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_DRAG_MODIFIER_INCLUDE
 
 /*
  * NiPSysDragModifier
diff --git a/obj/NiPSysEmitter.cpp b/obj/NiPSysEmitter.cpp
index 48615f37..0f6277b1 100644
--- a/obj/NiPSysEmitter.cpp
+++ b/obj/NiPSysEmitter.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysEmitter.h"
+#include "obj/NiPSysEmitter.h"
 
 //Definition of TYPE constant
 const Type NiPSysEmitter::TYPE("NiPSysEmitter", &NI_P_SYS_EMITTER_PARENT::TYPE );
diff --git a/obj/NiPSysEmitter.h b/obj/NiPSysEmitter.h
index b961a667..f9dd484b 100644
--- a/obj/NiPSysEmitter.h
+++ b/obj/NiPSysEmitter.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSEMITTER_H_
 #define _NIPSYSEMITTER_H_
 
+#include "NiPSysModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_EMITTER_INCLUDE
 
 /*
  * NiPSysEmitter
diff --git a/obj/NiPSysEmitterCtlr.cpp b/obj/NiPSysEmitterCtlr.cpp
index f387ba84..610306b2 100644
--- a/obj/NiPSysEmitterCtlr.cpp
+++ b/obj/NiPSysEmitterCtlr.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysEmitterCtlr.h"
-#include "NiInterpolator.h"
+#include "obj/NiPSysEmitterCtlr.h"
 
 //Definition of TYPE constant
 const Type NiPSysEmitterCtlr::TYPE("NiPSysEmitterCtlr", &NI_P_SYS_EMITTER_CTLR_PARENT::TYPE );
diff --git a/obj/NiPSysEmitterCtlr.h b/obj/NiPSysEmitterCtlr.h
index 9af3e3be..2c8824c3 100644
--- a/obj/NiPSysEmitterCtlr.h
+++ b/obj/NiPSysEmitterCtlr.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSEMITTERCTLR_H_
 #define _NIPSYSEMITTERCTLR_H_
 
+#include "APSysCtlr.h"
+#include "Ref.h"
+#include "obj/NiInterpolator.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_EMITTER_CTLR_INCLUDE
 
 /*
  * NiPSysEmitterCtlr
diff --git a/obj/NiPSysEmitterCtlrData.cpp b/obj/NiPSysEmitterCtlrData.cpp
index c6046af7..bfa063a4 100644
--- a/obj/NiPSysEmitterCtlrData.cpp
+++ b/obj/NiPSysEmitterCtlrData.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysEmitterCtlrData.h"
+#include "obj/NiPSysEmitterCtlrData.h"
+#include "gen/KeyGroup.h"
 
 //Definition of TYPE constant
 const Type NiPSysEmitterCtlrData::TYPE("NiPSysEmitterCtlrData", &NI_P_SYS_EMITTER_CTLR_DATA_PARENT::TYPE );
diff --git a/obj/NiPSysEmitterCtlrData.h b/obj/NiPSysEmitterCtlrData.h
index 30901a80..31bc2743 100644
--- a/obj/NiPSysEmitterCtlrData.h
+++ b/obj/NiPSysEmitterCtlrData.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSEMITTERCTLRDATA_H_
 #define _NIPSYSEMITTERCTLRDATA_H_
 
+#include "NiObject.h"
+#include "gen/KeyGroup.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_EMITTER_CTLR_DATA_INCLUDE
 
 /*
  * NiPSysEmitterCtlrData
diff --git a/obj/NiPSysEmitterDeclinationCtlr.cpp b/obj/NiPSysEmitterDeclinationCtlr.cpp
index b74f989d..84343086 100644
--- a/obj/NiPSysEmitterDeclinationCtlr.cpp
+++ b/obj/NiPSysEmitterDeclinationCtlr.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysEmitterDeclinationCtlr.h"
+#include "obj/NiPSysEmitterDeclinationCtlr.h"
 
 //Definition of TYPE constant
 const Type NiPSysEmitterDeclinationCtlr::TYPE("NiPSysEmitterDeclinationCtlr", &NI_P_SYS_EMITTER_DECLINATION_CTLR_PARENT::TYPE );
diff --git a/obj/NiPSysEmitterDeclinationCtlr.h b/obj/NiPSysEmitterDeclinationCtlr.h
index 311a6b7e..42b1f4d7 100644
--- a/obj/NiPSysEmitterDeclinationCtlr.h
+++ b/obj/NiPSysEmitterDeclinationCtlr.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSEMITTERDECLINATIONCTLR_H_
 #define _NIPSYSEMITTERDECLINATIONCTLR_H_
 
+#include "APSysCtlr.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_EMITTER_DECLINATION_CTLR_INCLUDE
 
 /*
  * NiPSysEmitterDeclinationCtlr
diff --git a/obj/NiPSysEmitterDeclinationVarCtlr.cpp b/obj/NiPSysEmitterDeclinationVarCtlr.cpp
index 1f7bd010..710f5ded 100644
--- a/obj/NiPSysEmitterDeclinationVarCtlr.cpp
+++ b/obj/NiPSysEmitterDeclinationVarCtlr.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysEmitterDeclinationVarCtlr.h"
+#include "obj/NiPSysEmitterDeclinationVarCtlr.h"
 
 //Definition of TYPE constant
 const Type NiPSysEmitterDeclinationVarCtlr::TYPE("NiPSysEmitterDeclinationVarCtlr", &NI_P_SYS_EMITTER_DECLINATION_VAR_CTLR_PARENT::TYPE );
diff --git a/obj/NiPSysEmitterDeclinationVarCtlr.h b/obj/NiPSysEmitterDeclinationVarCtlr.h
index e5503361..7aa7e1b0 100644
--- a/obj/NiPSysEmitterDeclinationVarCtlr.h
+++ b/obj/NiPSysEmitterDeclinationVarCtlr.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSEMITTERDECLINATIONVARCTLR_H_
 #define _NIPSYSEMITTERDECLINATIONVARCTLR_H_
 
+#include "APSysCtlr.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_EMITTER_DECLINATION_VAR_CTLR_INCLUDE
 
 /*
  * NiPSysEmitterDeclinationVarCtlr
diff --git a/obj/NiPSysEmitterInitialRadiusCtlr.cpp b/obj/NiPSysEmitterInitialRadiusCtlr.cpp
index 61cc5699..8b414d9a 100644
--- a/obj/NiPSysEmitterInitialRadiusCtlr.cpp
+++ b/obj/NiPSysEmitterInitialRadiusCtlr.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysEmitterInitialRadiusCtlr.h"
+#include "obj/NiPSysEmitterInitialRadiusCtlr.h"
 
 //Definition of TYPE constant
 const Type NiPSysEmitterInitialRadiusCtlr::TYPE("NiPSysEmitterInitialRadiusCtlr", &NI_P_SYS_EMITTER_INITIAL_RADIUS_CTLR_PARENT::TYPE );
diff --git a/obj/NiPSysEmitterInitialRadiusCtlr.h b/obj/NiPSysEmitterInitialRadiusCtlr.h
index 19d8b378..1aca0843 100644
--- a/obj/NiPSysEmitterInitialRadiusCtlr.h
+++ b/obj/NiPSysEmitterInitialRadiusCtlr.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSEMITTERINITIALRADIUSCTLR_H_
 #define _NIPSYSEMITTERINITIALRADIUSCTLR_H_
 
+#include "APSysCtlr.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_EMITTER_INITIAL_RADIUS_CTLR_INCLUDE
 
 /*
  * NiPSysEmitterInitialRadiusCtlr
diff --git a/obj/NiPSysEmitterLifeSpanCtlr.cpp b/obj/NiPSysEmitterLifeSpanCtlr.cpp
index c64e90d1..f185805f 100644
--- a/obj/NiPSysEmitterLifeSpanCtlr.cpp
+++ b/obj/NiPSysEmitterLifeSpanCtlr.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysEmitterLifeSpanCtlr.h"
+#include "obj/NiPSysEmitterLifeSpanCtlr.h"
 
 //Definition of TYPE constant
 const Type NiPSysEmitterLifeSpanCtlr::TYPE("NiPSysEmitterLifeSpanCtlr", &NI_P_SYS_EMITTER_LIFE_SPAN_CTLR_PARENT::TYPE );
diff --git a/obj/NiPSysEmitterLifeSpanCtlr.h b/obj/NiPSysEmitterLifeSpanCtlr.h
index 6cfa8970..77290fcf 100644
--- a/obj/NiPSysEmitterLifeSpanCtlr.h
+++ b/obj/NiPSysEmitterLifeSpanCtlr.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSEMITTERLIFESPANCTLR_H_
 #define _NIPSYSEMITTERLIFESPANCTLR_H_
 
+#include "APSysCtlr.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_EMITTER_LIFE_SPAN_CTLR_INCLUDE
 
 /*
  * NiPSysEmitterLifeSpanCtlr
diff --git a/obj/NiPSysEmitterSpeedCtlr.cpp b/obj/NiPSysEmitterSpeedCtlr.cpp
index 73a5685d..15632054 100644
--- a/obj/NiPSysEmitterSpeedCtlr.cpp
+++ b/obj/NiPSysEmitterSpeedCtlr.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysEmitterSpeedCtlr.h"
+#include "obj/NiPSysEmitterSpeedCtlr.h"
 
 //Definition of TYPE constant
 const Type NiPSysEmitterSpeedCtlr::TYPE("NiPSysEmitterSpeedCtlr", &NI_P_SYS_EMITTER_SPEED_CTLR_PARENT::TYPE );
diff --git a/obj/NiPSysEmitterSpeedCtlr.h b/obj/NiPSysEmitterSpeedCtlr.h
index 4de99588..050ea756 100644
--- a/obj/NiPSysEmitterSpeedCtlr.h
+++ b/obj/NiPSysEmitterSpeedCtlr.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSEMITTERSPEEDCTLR_H_
 #define _NIPSYSEMITTERSPEEDCTLR_H_
 
+#include "APSysCtlr.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_EMITTER_SPEED_CTLR_INCLUDE
 
 /*
  * NiPSysEmitterSpeedCtlr
diff --git a/obj/NiPSysGravityModifier.cpp b/obj/NiPSysGravityModifier.cpp
index 34e8775e..4377eddf 100644
--- a/obj/NiPSysGravityModifier.cpp
+++ b/obj/NiPSysGravityModifier.cpp
@@ -1,8 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysGravityModifier.h"
-#include "NiNode.h"
+#include "obj/NiPSysGravityModifier.h"
+#include "obj/NiNode.h"
 
 //Definition of TYPE constant
 const Type NiPSysGravityModifier::TYPE("NiPSysGravityModifier", &NI_P_SYS_GRAVITY_MODIFIER_PARENT::TYPE );
diff --git a/obj/NiPSysGravityModifier.h b/obj/NiPSysGravityModifier.h
index 7cdab726..46925a1b 100644
--- a/obj/NiPSysGravityModifier.h
+++ b/obj/NiPSysGravityModifier.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSGRAVITYMODIFIER_H_
 #define _NIPSYSGRAVITYMODIFIER_H_
 
+#include "NiPSysModifier.h"
+class NiNode;
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_GRAVITY_MODIFIER_INCLUDE
 
 /*
  * NiPSysGravityModifier
diff --git a/obj/NiPSysGravityStrengthCtlr.cpp b/obj/NiPSysGravityStrengthCtlr.cpp
index 5f08a5a5..a613ccb5 100644
--- a/obj/NiPSysGravityStrengthCtlr.cpp
+++ b/obj/NiPSysGravityStrengthCtlr.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysGravityStrengthCtlr.h"
+#include "obj/NiPSysGravityStrengthCtlr.h"
 
 //Definition of TYPE constant
 const Type NiPSysGravityStrengthCtlr::TYPE("NiPSysGravityStrengthCtlr", &NI_P_SYS_GRAVITY_STRENGTH_CTLR_PARENT::TYPE );
diff --git a/obj/NiPSysGravityStrengthCtlr.h b/obj/NiPSysGravityStrengthCtlr.h
index 96a43cf7..63675486 100644
--- a/obj/NiPSysGravityStrengthCtlr.h
+++ b/obj/NiPSysGravityStrengthCtlr.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSGRAVITYSTRENGTHCTLR_H_
 #define _NIPSYSGRAVITYSTRENGTHCTLR_H_
 
+#include "APSysCtlr.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_GRAVITY_STRENGTH_CTLR_INCLUDE
 
 /*
  * NiPSysGravityStrengthCtlr
diff --git a/obj/NiPSysGrowFadeModifier.cpp b/obj/NiPSysGrowFadeModifier.cpp
index 4e9d51d8..5fee65d9 100644
--- a/obj/NiPSysGrowFadeModifier.cpp
+++ b/obj/NiPSysGrowFadeModifier.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysGrowFadeModifier.h"
+#include "obj/NiPSysGrowFadeModifier.h"
 
 //Definition of TYPE constant
 const Type NiPSysGrowFadeModifier::TYPE("NiPSysGrowFadeModifier", &NI_P_SYS_GROW_FADE_MODIFIER_PARENT::TYPE );
diff --git a/obj/NiPSysGrowFadeModifier.h b/obj/NiPSysGrowFadeModifier.h
index 69865a63..873c31df 100644
--- a/obj/NiPSysGrowFadeModifier.h
+++ b/obj/NiPSysGrowFadeModifier.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSGROWFADEMODIFIER_H_
 #define _NIPSYSGROWFADEMODIFIER_H_
 
+#include "NiPSysModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_GROW_FADE_MODIFIER_INCLUDE
 
 /*
  * NiPSysGrowFadeModifier
diff --git a/obj/NiPSysMeshEmitter.cpp b/obj/NiPSysMeshEmitter.cpp
index 606e161e..3c407830 100644
--- a/obj/NiPSysMeshEmitter.cpp
+++ b/obj/NiPSysMeshEmitter.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysMeshEmitter.h"
-#include "NiTriBasedGeom.h"
+#include "obj/NiPSysMeshEmitter.h"
 
 //Definition of TYPE constant
 const Type NiPSysMeshEmitter::TYPE("NiPSysMeshEmitter", &NI_P_SYS_MESH_EMITTER_PARENT::TYPE );
diff --git a/obj/NiPSysMeshEmitter.h b/obj/NiPSysMeshEmitter.h
index 40889e78..64952afc 100644
--- a/obj/NiPSysMeshEmitter.h
+++ b/obj/NiPSysMeshEmitter.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSMESHEMITTER_H_
 #define _NIPSYSMESHEMITTER_H_
 
+#include "NiPSysEmitter.h"
+#include "Ref.h"
+#include "obj/NiTriBasedGeom.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_MESH_EMITTER_INCLUDE
 
 /*
  * NiPSysMeshEmitter
diff --git a/obj/NiPSysMeshUpdateModifier.cpp b/obj/NiPSysMeshUpdateModifier.cpp
index 0c068e05..a2ea917e 100644
--- a/obj/NiPSysMeshUpdateModifier.cpp
+++ b/obj/NiPSysMeshUpdateModifier.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysMeshUpdateModifier.h"
-#include "NiNode.h"
+#include "obj/NiPSysMeshUpdateModifier.h"
 
 //Definition of TYPE constant
 const Type NiPSysMeshUpdateModifier::TYPE("NiPSysMeshUpdateModifier", &NI_P_SYS_MESH_UPDATE_MODIFIER_PARENT::TYPE );
diff --git a/obj/NiPSysMeshUpdateModifier.h b/obj/NiPSysMeshUpdateModifier.h
index 0177bc66..ac737925 100644
--- a/obj/NiPSysMeshUpdateModifier.h
+++ b/obj/NiPSysMeshUpdateModifier.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSMESHUPDATEMODIFIER_H_
 #define _NIPSYSMESHUPDATEMODIFIER_H_
 
+#include "NiPSysModifier.h"
+#include "Ref.h"
+#include "obj/NiNode.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_MESH_UPDATE_MODIFIER_INCLUDE
 
 /*
  * NiPSysMeshUpdateModifier
diff --git a/obj/NiPSysModifier.cpp b/obj/NiPSysModifier.cpp
index d2384f68..b3cae9b4 100644
--- a/obj/NiPSysModifier.cpp
+++ b/obj/NiPSysModifier.cpp
@@ -1,8 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysModifier.h"
-#include "NiParticleSystem.h"
+#include "obj/NiPSysModifier.h"
+#include "obj/NiParticleSystem.h"
 
 //Definition of TYPE constant
 const Type NiPSysModifier::TYPE("NiPSysModifier", &NI_P_SYS_MODIFIER_PARENT::TYPE );
diff --git a/obj/NiPSysModifier.h b/obj/NiPSysModifier.h
index 8f6ff00c..e009c01b 100644
--- a/obj/NiPSysModifier.h
+++ b/obj/NiPSysModifier.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSMODIFIER_H_
 #define _NIPSYSMODIFIER_H_
 
+#include "NiObject.h"
+class NiParticleSystem;
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_MODIFIER_INCLUDE
 
 /*
  * NiPSysModifier
diff --git a/obj/NiPSysModifierActiveCtlr.cpp b/obj/NiPSysModifierActiveCtlr.cpp
index 6fdad4f7..0e85143c 100644
--- a/obj/NiPSysModifierActiveCtlr.cpp
+++ b/obj/NiPSysModifierActiveCtlr.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysModifierActiveCtlr.h"
+#include "obj/NiPSysModifierActiveCtlr.h"
 
 //Definition of TYPE constant
 const Type NiPSysModifierActiveCtlr::TYPE("NiPSysModifierActiveCtlr", &NI_P_SYS_MODIFIER_ACTIVE_CTLR_PARENT::TYPE );
diff --git a/obj/NiPSysModifierActiveCtlr.h b/obj/NiPSysModifierActiveCtlr.h
index 0c4f7c36..1b54e06c 100644
--- a/obj/NiPSysModifierActiveCtlr.h
+++ b/obj/NiPSysModifierActiveCtlr.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSMODIFIERACTIVECTLR_H_
 #define _NIPSYSMODIFIERACTIVECTLR_H_
 
+#include "APSysCtlr.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_MODIFIER_ACTIVE_CTLR_INCLUDE
 
 /*
  * NiPSysModifierActiveCtlr
diff --git a/obj/NiPSysPlanarCollider.cpp b/obj/NiPSysPlanarCollider.cpp
index 5b8453e6..412cccea 100644
--- a/obj/NiPSysPlanarCollider.cpp
+++ b/obj/NiPSysPlanarCollider.cpp
@@ -1,11 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysPlanarCollider.h"
-#include "NiPSysSpawnModifier.h"
-#include "NiObject.h"
-#include "NiObject.h"
-#include "NiNode.h"
+#include "obj/NiPSysPlanarCollider.h"
+#include "obj/NiObject.h"
 
 //Definition of TYPE constant
 const Type NiPSysPlanarCollider::TYPE("NiPSysPlanarCollider", &NI_P_SYS_PLANAR_COLLIDER_PARENT::TYPE );
diff --git a/obj/NiPSysPlanarCollider.h b/obj/NiPSysPlanarCollider.h
index 88974555..c081233b 100644
--- a/obj/NiPSysPlanarCollider.h
+++ b/obj/NiPSysPlanarCollider.h
@@ -4,8 +4,14 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSPLANARCOLLIDER_H_
 #define _NIPSYSPLANARCOLLIDER_H_
 
+#include "NiObject.h"
+#include "Ref.h"
+#include "obj/NiPSysSpawnModifier.h"
+#include "obj/NiObject.h"
+#include "obj/NiNode.h"
+class NiObject;
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_PLANAR_COLLIDER_INCLUDE
 
 /*
  * NiPSysPlanarCollider
diff --git a/obj/NiPSysPositionModifier.cpp b/obj/NiPSysPositionModifier.cpp
index a040ac37..4edfeb89 100644
--- a/obj/NiPSysPositionModifier.cpp
+++ b/obj/NiPSysPositionModifier.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysPositionModifier.h"
+#include "obj/NiPSysPositionModifier.h"
 
 //Definition of TYPE constant
 const Type NiPSysPositionModifier::TYPE("NiPSysPositionModifier", &NI_P_SYS_POSITION_MODIFIER_PARENT::TYPE );
diff --git a/obj/NiPSysPositionModifier.h b/obj/NiPSysPositionModifier.h
index 1c5cffac..b5363ecd 100644
--- a/obj/NiPSysPositionModifier.h
+++ b/obj/NiPSysPositionModifier.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSPOSITIONMODIFIER_H_
 #define _NIPSYSPOSITIONMODIFIER_H_
 
+#include "NiPSysModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_POSITION_MODIFIER_INCLUDE
 
 /*
  * NiPSysPositionModifier
diff --git a/obj/NiPSysResetOnLoopCtlr.cpp b/obj/NiPSysResetOnLoopCtlr.cpp
index da46bfaa..ae7e0006 100644
--- a/obj/NiPSysResetOnLoopCtlr.cpp
+++ b/obj/NiPSysResetOnLoopCtlr.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysResetOnLoopCtlr.h"
+#include "obj/NiPSysResetOnLoopCtlr.h"
 
 //Definition of TYPE constant
 const Type NiPSysResetOnLoopCtlr::TYPE("NiPSysResetOnLoopCtlr", &NI_P_SYS_RESET_ON_LOOP_CTLR_PARENT::TYPE );
diff --git a/obj/NiPSysResetOnLoopCtlr.h b/obj/NiPSysResetOnLoopCtlr.h
index 7d93020c..206d0c99 100644
--- a/obj/NiPSysResetOnLoopCtlr.h
+++ b/obj/NiPSysResetOnLoopCtlr.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSRESETONLOOPCTLR_H_
 #define _NIPSYSRESETONLOOPCTLR_H_
 
+#include "NiTimeController.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_RESET_ON_LOOP_CTLR_INCLUDE
 
 /*
  * NiPSysResetOnLoopCtlr
diff --git a/obj/NiPSysRotationModifier.cpp b/obj/NiPSysRotationModifier.cpp
index 7fbb4b9a..e7bf2df1 100644
--- a/obj/NiPSysRotationModifier.cpp
+++ b/obj/NiPSysRotationModifier.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysRotationModifier.h"
+#include "obj/NiPSysRotationModifier.h"
 
 //Definition of TYPE constant
 const Type NiPSysRotationModifier::TYPE("NiPSysRotationModifier", &NI_P_SYS_ROTATION_MODIFIER_PARENT::TYPE );
diff --git a/obj/NiPSysRotationModifier.h b/obj/NiPSysRotationModifier.h
index 09867558..58c9994f 100644
--- a/obj/NiPSysRotationModifier.h
+++ b/obj/NiPSysRotationModifier.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSROTATIONMODIFIER_H_
 #define _NIPSYSROTATIONMODIFIER_H_
 
+#include "NiPSysModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_ROTATION_MODIFIER_INCLUDE
 
 /*
  * NiPSysRotationModifier
diff --git a/obj/NiPSysSpawnModifier.cpp b/obj/NiPSysSpawnModifier.cpp
index 500863d6..93b23789 100644
--- a/obj/NiPSysSpawnModifier.cpp
+++ b/obj/NiPSysSpawnModifier.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysSpawnModifier.h"
+#include "obj/NiPSysSpawnModifier.h"
 
 //Definition of TYPE constant
 const Type NiPSysSpawnModifier::TYPE("NiPSysSpawnModifier", &NI_P_SYS_SPAWN_MODIFIER_PARENT::TYPE );
diff --git a/obj/NiPSysSpawnModifier.h b/obj/NiPSysSpawnModifier.h
index 2ff46448..a7c07d3e 100644
--- a/obj/NiPSysSpawnModifier.h
+++ b/obj/NiPSysSpawnModifier.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSSPAWNMODIFIER_H_
 #define _NIPSYSSPAWNMODIFIER_H_
 
+#include "NiPSysModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_SPAWN_MODIFIER_INCLUDE
 
 /*
  * NiPSysSpawnModifier
diff --git a/obj/NiPSysSphereEmitter.cpp b/obj/NiPSysSphereEmitter.cpp
index 71b0cd11..04de2969 100644
--- a/obj/NiPSysSphereEmitter.cpp
+++ b/obj/NiPSysSphereEmitter.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysSphereEmitter.h"
+#include "obj/NiPSysSphereEmitter.h"
 
 //Definition of TYPE constant
 const Type NiPSysSphereEmitter::TYPE("NiPSysSphereEmitter", &NI_P_SYS_SPHERE_EMITTER_PARENT::TYPE );
diff --git a/obj/NiPSysSphereEmitter.h b/obj/NiPSysSphereEmitter.h
index e548b627..d48d7db6 100644
--- a/obj/NiPSysSphereEmitter.h
+++ b/obj/NiPSysSphereEmitter.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSSPHEREEMITTER_H_
 #define _NIPSYSSPHEREEMITTER_H_
 
+#include "NiPSysVolumeEmitter.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_SPHERE_EMITTER_INCLUDE
 
 /*
  * NiPSysSphereEmitter
diff --git a/obj/NiPSysUpdateCtlr.cpp b/obj/NiPSysUpdateCtlr.cpp
index 264a513e..0a6fbb17 100644
--- a/obj/NiPSysUpdateCtlr.cpp
+++ b/obj/NiPSysUpdateCtlr.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysUpdateCtlr.h"
+#include "obj/NiPSysUpdateCtlr.h"
 
 //Definition of TYPE constant
 const Type NiPSysUpdateCtlr::TYPE("NiPSysUpdateCtlr", &NI_P_SYS_UPDATE_CTLR_PARENT::TYPE );
diff --git a/obj/NiPSysUpdateCtlr.h b/obj/NiPSysUpdateCtlr.h
index ec26dc34..8faad843 100644
--- a/obj/NiPSysUpdateCtlr.h
+++ b/obj/NiPSysUpdateCtlr.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSUPDATECTLR_H_
 #define _NIPSYSUPDATECTLR_H_
 
+#include "NiTimeController.h"
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_UPDATE_CTLR_INCLUDE
 
 /*
  * NiPSysUpdateCtlr
diff --git a/obj/NiPSysVolumeEmitter.cpp b/obj/NiPSysVolumeEmitter.cpp
index 439a1a1e..f13b29e1 100644
--- a/obj/NiPSysVolumeEmitter.cpp
+++ b/obj/NiPSysVolumeEmitter.cpp
@@ -1,8 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPSysVolumeEmitter.h"
-#include "NiNode.h"
+#include "obj/NiPSysVolumeEmitter.h"
+#include "obj/NiNode.h"
 
 //Definition of TYPE constant
 const Type NiPSysVolumeEmitter::TYPE("NiPSysVolumeEmitter", &NI_P_SYS_VOLUME_EMITTER_PARENT::TYPE );
diff --git a/obj/NiPSysVolumeEmitter.h b/obj/NiPSysVolumeEmitter.h
index a2cc9bcb..ba8e2d9c 100644
--- a/obj/NiPSysVolumeEmitter.h
+++ b/obj/NiPSysVolumeEmitter.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPSYSVOLUMEEMITTER_H_
 #define _NIPSYSVOLUMEEMITTER_H_
 
+#include "NiPSysEmitter.h"
+class NiNode;
+
 #include "gen/obj_defines.h"
-#include NI_P_SYS_VOLUME_EMITTER_INCLUDE
 
 /*
  * NiPSysVolumeEmitter
diff --git a/obj/NiPalette.cpp b/obj/NiPalette.cpp
index 57736be1..0b7faf23 100644
--- a/obj/NiPalette.cpp
+++ b/obj/NiPalette.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPalette.h"
+#include "obj/NiPalette.h"
 
 //Definition of TYPE constant
 const Type NiPalette::TYPE("NiPalette", &NI_PALETTE_PARENT::TYPE );
diff --git a/obj/NiPalette.h b/obj/NiPalette.h
index 806f5558..355f41fe 100644
--- a/obj/NiPalette.h
+++ b/obj/NiPalette.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPALETTE_H_
 #define _NIPALETTE_H_
 
+#include "NiObject.h"
+
 #include "gen/obj_defines.h"
-#include NI_PALETTE_INCLUDE
 
 /*
  * NiPalette
diff --git a/obj/NiParticleBomb.cpp b/obj/NiParticleBomb.cpp
index 84901e51..a340b32b 100644
--- a/obj/NiParticleBomb.cpp
+++ b/obj/NiParticleBomb.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiParticleBomb.h"
+#include "obj/NiParticleBomb.h"
 
 //Definition of TYPE constant
 const Type NiParticleBomb::TYPE("NiParticleBomb", &NI_PARTICLE_BOMB_PARENT::TYPE );
diff --git a/obj/NiParticleBomb.h b/obj/NiParticleBomb.h
index 6014dae8..73608f4f 100644
--- a/obj/NiParticleBomb.h
+++ b/obj/NiParticleBomb.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPARTICLEBOMB_H_
 #define _NIPARTICLEBOMB_H_
 
+#include "AParticleModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_PARTICLE_BOMB_INCLUDE
 
 /*
  * NiParticleBomb
diff --git a/obj/NiParticleColorModifier.cpp b/obj/NiParticleColorModifier.cpp
index 64e591ed..6c4d01b3 100644
--- a/obj/NiParticleColorModifier.cpp
+++ b/obj/NiParticleColorModifier.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiParticleColorModifier.h"
-#include "NiColorData.h"
+#include "obj/NiParticleColorModifier.h"
 
 //Definition of TYPE constant
 const Type NiParticleColorModifier::TYPE("NiParticleColorModifier", &NI_PARTICLE_COLOR_MODIFIER_PARENT::TYPE );
diff --git a/obj/NiParticleColorModifier.h b/obj/NiParticleColorModifier.h
index 2d649df1..878e9d38 100644
--- a/obj/NiParticleColorModifier.h
+++ b/obj/NiParticleColorModifier.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPARTICLECOLORMODIFIER_H_
 #define _NIPARTICLECOLORMODIFIER_H_
 
+#include "AParticleModifier.h"
+#include "Ref.h"
+#include "obj/NiColorData.h"
+
 #include "gen/obj_defines.h"
-#include NI_PARTICLE_COLOR_MODIFIER_INCLUDE
 
 /*
  * NiParticleColorModifier
diff --git a/obj/NiParticleGrowFade.cpp b/obj/NiParticleGrowFade.cpp
index a46ff9c2..21df36ce 100644
--- a/obj/NiParticleGrowFade.cpp
+++ b/obj/NiParticleGrowFade.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiParticleGrowFade.h"
+#include "obj/NiParticleGrowFade.h"
 
 //Definition of TYPE constant
 const Type NiParticleGrowFade::TYPE("NiParticleGrowFade", &NI_PARTICLE_GROW_FADE_PARENT::TYPE );
diff --git a/obj/NiParticleGrowFade.h b/obj/NiParticleGrowFade.h
index 0d7167b9..01e7d227 100644
--- a/obj/NiParticleGrowFade.h
+++ b/obj/NiParticleGrowFade.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPARTICLEGROWFADE_H_
 #define _NIPARTICLEGROWFADE_H_
 
+#include "AParticleModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_PARTICLE_GROW_FADE_INCLUDE
 
 /*
  * NiParticleGrowFade
diff --git a/obj/NiParticleMeshModifier.cpp b/obj/NiParticleMeshModifier.cpp
index 1f6d029c..4b9fd019 100644
--- a/obj/NiParticleMeshModifier.cpp
+++ b/obj/NiParticleMeshModifier.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiParticleMeshModifier.h"
-#include "NiTriBasedGeom.h"
+#include "obj/NiParticleMeshModifier.h"
 
 //Definition of TYPE constant
 const Type NiParticleMeshModifier::TYPE("NiParticleMeshModifier", &NI_PARTICLE_MESH_MODIFIER_PARENT::TYPE );
diff --git a/obj/NiParticleMeshModifier.h b/obj/NiParticleMeshModifier.h
index 12dd3aa1..cfc2625d 100644
--- a/obj/NiParticleMeshModifier.h
+++ b/obj/NiParticleMeshModifier.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPARTICLEMESHMODIFIER_H_
 #define _NIPARTICLEMESHMODIFIER_H_
 
+#include "AParticleModifier.h"
+#include "Ref.h"
+#include "obj/NiTriBasedGeom.h"
+
 #include "gen/obj_defines.h"
-#include NI_PARTICLE_MESH_MODIFIER_INCLUDE
 
 /*
  * NiParticleMeshModifier
diff --git a/obj/NiParticleMeshes.cpp b/obj/NiParticleMeshes.cpp
index 4f0e85f9..0b407de7 100644
--- a/obj/NiParticleMeshes.cpp
+++ b/obj/NiParticleMeshes.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiParticleMeshes.h"
+#include "obj/NiParticleMeshes.h"
 
 //Definition of TYPE constant
 const Type NiParticleMeshes::TYPE("NiParticleMeshes", &NI_PARTICLE_MESHES_PARENT::TYPE );
diff --git a/obj/NiParticleMeshes.h b/obj/NiParticleMeshes.h
index 26381d6e..257a0c9c 100644
--- a/obj/NiParticleMeshes.h
+++ b/obj/NiParticleMeshes.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPARTICLEMESHES_H_
 #define _NIPARTICLEMESHES_H_
 
+#include "NiParticles.h"
+
 #include "gen/obj_defines.h"
-#include NI_PARTICLE_MESHES_INCLUDE
 
 /*
  * NiParticleMeshes
diff --git a/obj/NiParticleMeshesData.cpp b/obj/NiParticleMeshesData.cpp
index ca2d5c50..212f2cce 100644
--- a/obj/NiParticleMeshesData.cpp
+++ b/obj/NiParticleMeshesData.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiParticleMeshesData.h"
-#include "NiTriBasedGeom.h"
+#include "obj/NiParticleMeshesData.h"
 
 //Definition of TYPE constant
 const Type NiParticleMeshesData::TYPE("NiParticleMeshesData", &NI_PARTICLE_MESHES_DATA_PARENT::TYPE );
diff --git a/obj/NiParticleMeshesData.h b/obj/NiParticleMeshesData.h
index e30b5f25..6604278a 100644
--- a/obj/NiParticleMeshesData.h
+++ b/obj/NiParticleMeshesData.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPARTICLEMESHESDATA_H_
 #define _NIPARTICLEMESHESDATA_H_
 
+#include "NiParticlesData.h"
+#include "Ref.h"
+#include "obj/NiTriBasedGeom.h"
+
 #include "gen/obj_defines.h"
-#include NI_PARTICLE_MESHES_DATA_INCLUDE
 
 /*
  * NiParticleMeshesData
diff --git a/obj/NiParticleRotation.cpp b/obj/NiParticleRotation.cpp
index 99995ee0..1f8e5d11 100644
--- a/obj/NiParticleRotation.cpp
+++ b/obj/NiParticleRotation.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiParticleRotation.h"
+#include "obj/NiParticleRotation.h"
 
 //Definition of TYPE constant
 const Type NiParticleRotation::TYPE("NiParticleRotation", &NI_PARTICLE_ROTATION_PARENT::TYPE );
diff --git a/obj/NiParticleRotation.h b/obj/NiParticleRotation.h
index ed6fb36c..8707858d 100644
--- a/obj/NiParticleRotation.h
+++ b/obj/NiParticleRotation.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPARTICLEROTATION_H_
 #define _NIPARTICLEROTATION_H_
 
+#include "AParticleModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_PARTICLE_ROTATION_INCLUDE
 
 /*
  * NiParticleRotation
diff --git a/obj/NiParticleSystem.cpp b/obj/NiParticleSystem.cpp
index 793b7ab6..1290546d 100644
--- a/obj/NiParticleSystem.cpp
+++ b/obj/NiParticleSystem.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiParticleSystem.h"
-#include "NiPSysModifier.h"
+#include "obj/NiParticleSystem.h"
 
 //Definition of TYPE constant
 const Type NiParticleSystem::TYPE("NiParticleSystem", &NI_PARTICLE_SYSTEM_PARENT::TYPE );
diff --git a/obj/NiParticleSystem.h b/obj/NiParticleSystem.h
index 703cf8e4..d65081e9 100644
--- a/obj/NiParticleSystem.h
+++ b/obj/NiParticleSystem.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPARTICLESYSTEM_H_
 #define _NIPARTICLESYSTEM_H_
 
+#include "NiParticles.h"
+#include "Ref.h"
+#include "obj/NiPSysModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_PARTICLE_SYSTEM_INCLUDE
 
 /*
  * NiParticleSystem
diff --git a/obj/NiParticleSystemController.cpp b/obj/NiParticleSystemController.cpp
index 584c8ea0..31ed599d 100644
--- a/obj/NiParticleSystemController.cpp
+++ b/obj/NiParticleSystemController.cpp
@@ -1,11 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiParticleSystemController.h"
-#include "NiObject.h"
-#include "NiObject.h"
-#include "AParticleModifier.h"
-#include "NiObject.h"
+#include "obj/NiParticleSystemController.h"
+#include "gen/Particle.h"
 
 //Definition of TYPE constant
 const Type NiParticleSystemController::TYPE("NiParticleSystemController", &NI_PARTICLE_SYSTEM_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiParticleSystemController.h b/obj/NiParticleSystemController.h
index c5b81079..9ea18a68 100644
--- a/obj/NiParticleSystemController.h
+++ b/obj/NiParticleSystemController.h
@@ -4,8 +4,13 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPARTICLESYSTEMCONTROLLER_H_
 #define _NIPARTICLESYSTEMCONTROLLER_H_
 
+#include "NiTimeController.h"
+#include "Ref.h"
+#include "obj/NiObject.h"
+#include "gen/Particle.h"
+#include "obj/AParticleModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_PARTICLE_SYSTEM_CONTROLLER_INCLUDE
 
 /*
  * NiParticleSystemController
diff --git a/obj/NiParticles.cpp b/obj/NiParticles.cpp
index a019293d..ccafcab6 100644
--- a/obj/NiParticles.cpp
+++ b/obj/NiParticles.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiParticles.h"
+#include "obj/NiParticles.h"
 
 //Definition of TYPE constant
 const Type NiParticles::TYPE("NiParticles", &NI_PARTICLES_PARENT::TYPE );
diff --git a/obj/NiParticles.h b/obj/NiParticles.h
index 95901b93..3b304afe 100644
--- a/obj/NiParticles.h
+++ b/obj/NiParticles.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPARTICLES_H_
 #define _NIPARTICLES_H_
 
+#include "NiTriBasedGeom.h"
+
 #include "gen/obj_defines.h"
-#include NI_PARTICLES_INCLUDE
 
 /*
  * NiParticles
diff --git a/obj/NiParticlesData.cpp b/obj/NiParticlesData.cpp
index 486d1a74..e87bbd60 100644
--- a/obj/NiParticlesData.cpp
+++ b/obj/NiParticlesData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiParticlesData.h"
+#include "obj/NiParticlesData.h"
 
 //Definition of TYPE constant
 const Type NiParticlesData::TYPE("NiParticlesData", &NI_PARTICLES_DATA_PARENT::TYPE );
diff --git a/obj/NiParticlesData.h b/obj/NiParticlesData.h
index ac1379a9..01935cac 100644
--- a/obj/NiParticlesData.h
+++ b/obj/NiParticlesData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPARTICLESDATA_H_
 #define _NIPARTICLESDATA_H_
 
+#include "NiAutoNormalParticlesData.h"
+
 #include "gen/obj_defines.h"
-#include NI_PARTICLES_DATA_INCLUDE
 
 /*
  * NiParticlesData
diff --git a/obj/NiPathController.cpp b/obj/NiPathController.cpp
index 0ab135df..cec8e8f8 100644
--- a/obj/NiPathController.cpp
+++ b/obj/NiPathController.cpp
@@ -1,9 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPathController.h"
-#include "NiPosData.h"
-#include "NiFloatData.h"
+#include "obj/NiPathController.h"
 
 //Definition of TYPE constant
 const Type NiPathController::TYPE("NiPathController", &NI_PATH_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiPathController.h b/obj/NiPathController.h
index 95433d91..33249a20 100644
--- a/obj/NiPathController.h
+++ b/obj/NiPathController.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPATHCONTROLLER_H_
 #define _NIPATHCONTROLLER_H_
 
+#include "NiTimeController.h"
+#include "Ref.h"
+#include "obj/NiPosData.h"
+#include "obj/NiFloatData.h"
+
 #include "gen/obj_defines.h"
-#include NI_PATH_CONTROLLER_INCLUDE
 
 /*
  * NiPathController
diff --git a/obj/NiPathInterpolator.cpp b/obj/NiPathInterpolator.cpp
index 9d42f00f..87e7fba1 100644
--- a/obj/NiPathInterpolator.cpp
+++ b/obj/NiPathInterpolator.cpp
@@ -1,9 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPathInterpolator.h"
-#include "NiPosData.h"
-#include "NiFloatData.h"
+#include "obj/NiPathInterpolator.h"
 
 //Definition of TYPE constant
 const Type NiPathInterpolator::TYPE("NiPathInterpolator", &NI_PATH_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiPathInterpolator.h b/obj/NiPathInterpolator.h
index 28a56f33..fa3b5e0c 100644
--- a/obj/NiPathInterpolator.h
+++ b/obj/NiPathInterpolator.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPATHINTERPOLATOR_H_
 #define _NIPATHINTERPOLATOR_H_
 
+#include "NiBlendInterpolator.h"
+#include "Ref.h"
+#include "obj/NiPosData.h"
+#include "obj/NiFloatData.h"
+
 #include "gen/obj_defines.h"
-#include NI_PATH_INTERPOLATOR_INCLUDE
 
 /*
  * NiPathInterpolator
diff --git a/obj/NiPixelData.cpp b/obj/NiPixelData.cpp
index 64e1d2ca..839df426 100644
--- a/obj/NiPixelData.cpp
+++ b/obj/NiPixelData.cpp
@@ -1,8 +1,9 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPixelData.h"
-#include "NiPalette.h"
+#include "obj/NiPixelData.h"
+#include "gen/MipMap.h"
+#include "gen/ByteArray.h"
 
 //Definition of TYPE constant
 const Type NiPixelData::TYPE("NiPixelData", &NI_PIXEL_DATA_PARENT::TYPE );
diff --git a/obj/NiPixelData.h b/obj/NiPixelData.h
index 5fd96ab8..aa96a936 100644
--- a/obj/NiPixelData.h
+++ b/obj/NiPixelData.h
@@ -4,8 +4,13 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPIXELDATA_H_
 #define _NIPIXELDATA_H_
 
+#include "NiObject.h"
+#include "Ref.h"
+#include "obj/NiPalette.h"
+#include "gen/MipMap.h"
+#include "gen/ByteArray.h"
+
 #include "gen/obj_defines.h"
-#include NI_PIXEL_DATA_INCLUDE
 
 /*
  * NiPixelData
diff --git a/obj/NiPlanarCollider.cpp b/obj/NiPlanarCollider.cpp
index a24fcbfd..29eeb1ed 100644
--- a/obj/NiPlanarCollider.cpp
+++ b/obj/NiPlanarCollider.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPlanarCollider.h"
+#include "obj/NiPlanarCollider.h"
 
 //Definition of TYPE constant
 const Type NiPlanarCollider::TYPE("NiPlanarCollider", &NI_PLANAR_COLLIDER_PARENT::TYPE );
diff --git a/obj/NiPlanarCollider.h b/obj/NiPlanarCollider.h
index f7ab778e..cb74df7c 100644
--- a/obj/NiPlanarCollider.h
+++ b/obj/NiPlanarCollider.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPLANARCOLLIDER_H_
 #define _NIPLANARCOLLIDER_H_
 
+#include "AParticleModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_PLANAR_COLLIDER_INCLUDE
 
 /*
  * NiPlanarCollider
diff --git a/obj/NiPoint3Interpolator.cpp b/obj/NiPoint3Interpolator.cpp
index c92e225d..2b6401b7 100644
--- a/obj/NiPoint3Interpolator.cpp
+++ b/obj/NiPoint3Interpolator.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPoint3Interpolator.h"
-#include "NiPosData.h"
+#include "obj/NiPoint3Interpolator.h"
 
 //Definition of TYPE constant
 const Type NiPoint3Interpolator::TYPE("NiPoint3Interpolator", &NI_POINT3_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiPoint3Interpolator.h b/obj/NiPoint3Interpolator.h
index dcc255a6..026a1895 100644
--- a/obj/NiPoint3Interpolator.h
+++ b/obj/NiPoint3Interpolator.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPOINT3INTERPOLATOR_H_
 #define _NIPOINT3INTERPOLATOR_H_
 
+#include "NiInterpolator.h"
+#include "Ref.h"
+#include "obj/NiPosData.h"
+
 #include "gen/obj_defines.h"
-#include NI_POINT3_INTERPOLATOR_INCLUDE
 
 /*
  * NiPoint3Interpolator
diff --git a/obj/NiPointLight.cpp b/obj/NiPointLight.cpp
index e03e1200..82ee4eb7 100644
--- a/obj/NiPointLight.cpp
+++ b/obj/NiPointLight.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPointLight.h"
+#include "obj/NiPointLight.h"
 
 //Definition of TYPE constant
 const Type NiPointLight::TYPE("NiPointLight", &NI_POINT_LIGHT_PARENT::TYPE );
diff --git a/obj/NiPointLight.h b/obj/NiPointLight.h
index 4cc41804..f35701fe 100644
--- a/obj/NiPointLight.h
+++ b/obj/NiPointLight.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPOINTLIGHT_H_
 #define _NIPOINTLIGHT_H_
 
+#include "NiLight.h"
+
 #include "gen/obj_defines.h"
-#include NI_POINT_LIGHT_INCLUDE
 
 /*
  * NiPointLight
diff --git a/obj/NiPosData.cpp b/obj/NiPosData.cpp
index b5e8ddb3..2703b8da 100644
--- a/obj/NiPosData.cpp
+++ b/obj/NiPosData.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiPosData.h"
+#include "obj/NiPosData.h"
+#include "gen/KeyGroup.h"
 
 //Definition of TYPE constant
 const Type NiPosData::TYPE("NiPosData", &NI_POS_DATA_PARENT::TYPE );
diff --git a/obj/NiPosData.h b/obj/NiPosData.h
index 5cc2ad34..f4449de8 100644
--- a/obj/NiPosData.h
+++ b/obj/NiPosData.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPOSDATA_H_
 #define _NIPOSDATA_H_
 
+#include "AKeyedData.h"
+#include "gen/KeyGroup.h"
+
 #include "gen/obj_defines.h"
-#include NI_POS_DATA_INCLUDE
 
 /*
  * NiPosData
diff --git a/obj/NiProperty.cpp b/obj/NiProperty.cpp
index f61c2321..8ddf8f84 100644
--- a/obj/NiProperty.cpp
+++ b/obj/NiProperty.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiProperty.h"
+#include "obj/NiProperty.h"
 
 //Definition of TYPE constant
 const Type NiProperty::TYPE("NiProperty", &NI_PROPERTY_PARENT::TYPE );
diff --git a/obj/NiProperty.h b/obj/NiProperty.h
index 0544e5e5..4678d3b4 100644
--- a/obj/NiProperty.h
+++ b/obj/NiProperty.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIPROPERTY_H_
 #define _NIPROPERTY_H_
 
+#include "NiObjectNET.h"
+
 #include "gen/obj_defines.h"
-#include NI_PROPERTY_INCLUDE
 
 /*
  * NiProperty
diff --git a/obj/NiRangeLODData.cpp b/obj/NiRangeLODData.cpp
index f9f45d42..0b1718da 100644
--- a/obj/NiRangeLODData.cpp
+++ b/obj/NiRangeLODData.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiRangeLODData.h"
+#include "obj/NiRangeLODData.h"
+#include "gen/LODRange.h"
 
 //Definition of TYPE constant
 const Type NiRangeLODData::TYPE("NiRangeLODData", &NI_RANGE_L_O_D_DATA_PARENT::TYPE );
diff --git a/obj/NiRangeLODData.h b/obj/NiRangeLODData.h
index 4dabcfe8..962c0adf 100644
--- a/obj/NiRangeLODData.h
+++ b/obj/NiRangeLODData.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIRANGELODDATA_H_
 #define _NIRANGELODDATA_H_
 
+#include "NiObject.h"
+#include "gen/LODRange.h"
+
 #include "gen/obj_defines.h"
-#include NI_RANGE_L_O_D_DATA_INCLUDE
 
 /*
  * NiRangeLODData
diff --git a/obj/NiRotatingParticles.cpp b/obj/NiRotatingParticles.cpp
index 160cc663..7975125a 100644
--- a/obj/NiRotatingParticles.cpp
+++ b/obj/NiRotatingParticles.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiRotatingParticles.h"
+#include "obj/NiRotatingParticles.h"
 
 //Definition of TYPE constant
 const Type NiRotatingParticles::TYPE("NiRotatingParticles", &NI_ROTATING_PARTICLES_PARENT::TYPE );
diff --git a/obj/NiRotatingParticles.h b/obj/NiRotatingParticles.h
index 41196d70..572f070a 100644
--- a/obj/NiRotatingParticles.h
+++ b/obj/NiRotatingParticles.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIROTATINGPARTICLES_H_
 #define _NIROTATINGPARTICLES_H_
 
+#include "NiParticles.h"
+
 #include "gen/obj_defines.h"
-#include NI_ROTATING_PARTICLES_INCLUDE
 
 /*
  * NiRotatingParticles
diff --git a/obj/NiRotatingParticlesData.cpp b/obj/NiRotatingParticlesData.cpp
index e91ccfba..d2246abd 100644
--- a/obj/NiRotatingParticlesData.cpp
+++ b/obj/NiRotatingParticlesData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiRotatingParticlesData.h"
+#include "obj/NiRotatingParticlesData.h"
 
 //Definition of TYPE constant
 const Type NiRotatingParticlesData::TYPE("NiRotatingParticlesData", &NI_ROTATING_PARTICLES_DATA_PARENT::TYPE );
diff --git a/obj/NiRotatingParticlesData.h b/obj/NiRotatingParticlesData.h
index 5fab749c..33380b4c 100644
--- a/obj/NiRotatingParticlesData.h
+++ b/obj/NiRotatingParticlesData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIROTATINGPARTICLESDATA_H_
 #define _NIROTATINGPARTICLESDATA_H_
 
+#include "NiParticlesData.h"
+
 #include "gen/obj_defines.h"
-#include NI_ROTATING_PARTICLES_DATA_INCLUDE
 
 /*
  * NiRotatingParticlesData
diff --git a/obj/NiScreenLODData.cpp b/obj/NiScreenLODData.cpp
index b12d948d..b0847e37 100644
--- a/obj/NiScreenLODData.cpp
+++ b/obj/NiScreenLODData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiScreenLODData.h"
+#include "obj/NiScreenLODData.h"
 
 //Definition of TYPE constant
 const Type NiScreenLODData::TYPE("NiScreenLODData", &NI_SCREEN_L_O_D_DATA_PARENT::TYPE );
diff --git a/obj/NiScreenLODData.h b/obj/NiScreenLODData.h
index a5823a64..37577d19 100644
--- a/obj/NiScreenLODData.h
+++ b/obj/NiScreenLODData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISCREENLODDATA_H_
 #define _NISCREENLODDATA_H_
 
+#include "NiObject.h"
+
 #include "gen/obj_defines.h"
-#include NI_SCREEN_L_O_D_DATA_INCLUDE
 
 /*
  * NiScreenLODData
diff --git a/obj/NiSequenceStreamHelper.cpp b/obj/NiSequenceStreamHelper.cpp
index 0bc548dc..a6256844 100644
--- a/obj/NiSequenceStreamHelper.cpp
+++ b/obj/NiSequenceStreamHelper.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiSequenceStreamHelper.h"
+#include "obj/NiSequenceStreamHelper.h"
 
 //Definition of TYPE constant
 const Type NiSequenceStreamHelper::TYPE("NiSequenceStreamHelper", &NI_SEQUENCE_STREAM_HELPER_PARENT::TYPE );
diff --git a/obj/NiSequenceStreamHelper.h b/obj/NiSequenceStreamHelper.h
index 93ebebe1..3476f6da 100644
--- a/obj/NiSequenceStreamHelper.h
+++ b/obj/NiSequenceStreamHelper.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISEQUENCESTREAMHELPER_H_
 #define _NISEQUENCESTREAMHELPER_H_
 
+#include "NiObjectNET.h"
+
 #include "gen/obj_defines.h"
-#include NI_SEQUENCE_STREAM_HELPER_INCLUDE
 
 /*
  * NiSequenceStreamHelper
diff --git a/obj/NiShadeProperty.cpp b/obj/NiShadeProperty.cpp
index 7880f071..396f40ab 100644
--- a/obj/NiShadeProperty.cpp
+++ b/obj/NiShadeProperty.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiShadeProperty.h"
+#include "obj/NiShadeProperty.h"
 
 //Definition of TYPE constant
 const Type NiShadeProperty::TYPE("NiShadeProperty", &NI_SHADE_PROPERTY_PARENT::TYPE );
diff --git a/obj/NiShadeProperty.h b/obj/NiShadeProperty.h
index 6258c999..0b9b8bb9 100644
--- a/obj/NiShadeProperty.h
+++ b/obj/NiShadeProperty.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISHADEPROPERTY_H_
 #define _NISHADEPROPERTY_H_
 
+#include "NiProperty.h"
+
 #include "gen/obj_defines.h"
-#include NI_SHADE_PROPERTY_INCLUDE
 
 /*
  * NiShadeProperty
diff --git a/obj/NiSingleInterpolatorController.cpp b/obj/NiSingleInterpolatorController.cpp
index 912969aa..5fc2186b 100644
--- a/obj/NiSingleInterpolatorController.cpp
+++ b/obj/NiSingleInterpolatorController.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiSingleInterpolatorController.h"
-#include "NiInterpolator.h"
+#include "obj/NiSingleInterpolatorController.h"
 
 //Definition of TYPE constant
 const Type NiSingleInterpolatorController::TYPE("NiSingleInterpolatorController", &NI_SINGLE_INTERPOLATOR_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiSingleInterpolatorController.h b/obj/NiSingleInterpolatorController.h
index 61d944d4..85d583e5 100644
--- a/obj/NiSingleInterpolatorController.h
+++ b/obj/NiSingleInterpolatorController.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISINGLEINTERPOLATORCONTROLLER_H_
 #define _NISINGLEINTERPOLATORCONTROLLER_H_
 
+#include "NiTimeController.h"
+#include "Ref.h"
+#include "obj/NiInterpolator.h"
+
 #include "gen/obj_defines.h"
-#include NI_SINGLE_INTERPOLATOR_CONTROLLER_INCLUDE
 
 /*
  * NiSingleInterpolatorController
diff --git a/obj/NiSkinData.cpp b/obj/NiSkinData.cpp
index c1a8f534..e04925df 100644
--- a/obj/NiSkinData.cpp
+++ b/obj/NiSkinData.cpp
@@ -1,8 +1,9 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiSkinData.h"
-#include "NiSkinPartition.h"
+#include "obj/NiSkinData.h"
+#include "gen/SkinData.h"
+#include "gen/SkinWeight.h"
 
 //Definition of TYPE constant
 const Type NiSkinData::TYPE("NiSkinData", &NI_SKIN_DATA_PARENT::TYPE );
diff --git a/obj/NiSkinData.h b/obj/NiSkinData.h
index dd2b42cf..c3c1fd0d 100644
--- a/obj/NiSkinData.h
+++ b/obj/NiSkinData.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISKINDATA_H_
 #define _NISKINDATA_H_
 
+#include "NiObject.h"
+#include "Ref.h"
+#include "obj/NiSkinPartition.h"
+#include "gen/SkinData.h"
+
 #include "gen/obj_defines.h"
-#include NI_SKIN_DATA_INCLUDE
 
 /*
  * NiSkinData
diff --git a/obj/NiSkinInstance.cpp b/obj/NiSkinInstance.cpp
index 647de1f3..077dfd41 100644
--- a/obj/NiSkinInstance.cpp
+++ b/obj/NiSkinInstance.cpp
@@ -1,10 +1,10 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiSkinInstance.h"
-#include "NiSkinData.h"
-#include "NiSkinPartition.h"
-#include "NiNode.h"
+#include "obj/NiSkinInstance.h"
+#include "gen/Bones.h"
+#include "obj/NiNode.h"
+#include "obj/NiNode.h"
 
 //Definition of TYPE constant
 const Type NiSkinInstance::TYPE("NiSkinInstance", &NI_SKIN_INSTANCE_PARENT::TYPE );
diff --git a/obj/NiSkinInstance.h b/obj/NiSkinInstance.h
index 5a062ecc..d78bbb86 100644
--- a/obj/NiSkinInstance.h
+++ b/obj/NiSkinInstance.h
@@ -4,8 +4,14 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISKININSTANCE_H_
 #define _NISKININSTANCE_H_
 
+#include "NiObject.h"
+#include "Ref.h"
+#include "obj/NiSkinData.h"
+#include "obj/NiSkinPartition.h"
+#include "gen/Bones.h"
+class NiNode;
+
 #include "gen/obj_defines.h"
-#include NI_SKIN_INSTANCE_INCLUDE
 
 /*
  * NiSkinInstance
diff --git a/obj/NiSkinPartition.cpp b/obj/NiSkinPartition.cpp
index 793f957c..8b501709 100644
--- a/obj/NiSkinPartition.cpp
+++ b/obj/NiSkinPartition.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiSkinPartition.h"
+#include "obj/NiSkinPartition.h"
+#include "gen/SkinPartition.h"
 
 //Definition of TYPE constant
 const Type NiSkinPartition::TYPE("NiSkinPartition", &NI_SKIN_PARTITION_PARENT::TYPE );
diff --git a/obj/NiSkinPartition.h b/obj/NiSkinPartition.h
index 6f198672..29da2400 100644
--- a/obj/NiSkinPartition.h
+++ b/obj/NiSkinPartition.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISKINPARTITION_H_
 #define _NISKINPARTITION_H_
 
+#include "NiObject.h"
+#include "gen/SkinPartition.h"
+
 #include "gen/obj_defines.h"
-#include NI_SKIN_PARTITION_INCLUDE
 
 /*
  * NiSkinPartition
diff --git a/obj/NiSourceTexture.cpp b/obj/NiSourceTexture.cpp
index 6cf6d520..7bff8fba 100644
--- a/obj/NiSourceTexture.cpp
+++ b/obj/NiSourceTexture.cpp
@@ -1,9 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiSourceTexture.h"
-#include "NiObject.h"
-#include "NiPixelData.h"
+#include "obj/NiSourceTexture.h"
 
 //Definition of TYPE constant
 const Type NiSourceTexture::TYPE("NiSourceTexture", &NI_SOURCE_TEXTURE_PARENT::TYPE );
diff --git a/obj/NiSourceTexture.h b/obj/NiSourceTexture.h
index 045c8974..a11e899a 100644
--- a/obj/NiSourceTexture.h
+++ b/obj/NiSourceTexture.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISOURCETEXTURE_H_
 #define _NISOURCETEXTURE_H_
 
+#include "NiObjectNET.h"
+#include "Ref.h"
+#include "obj/NiObject.h"
+#include "obj/NiPixelData.h"
+
 #include "gen/obj_defines.h"
-#include NI_SOURCE_TEXTURE_INCLUDE
 
 /*
  * NiSourceTexture
diff --git a/obj/NiSpecularProperty.cpp b/obj/NiSpecularProperty.cpp
index 10449a6d..29792fdd 100644
--- a/obj/NiSpecularProperty.cpp
+++ b/obj/NiSpecularProperty.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiSpecularProperty.h"
+#include "obj/NiSpecularProperty.h"
 
 //Definition of TYPE constant
 const Type NiSpecularProperty::TYPE("NiSpecularProperty", &NI_SPECULAR_PROPERTY_PARENT::TYPE );
diff --git a/obj/NiSpecularProperty.h b/obj/NiSpecularProperty.h
index 88b0a491..22368d17 100644
--- a/obj/NiSpecularProperty.h
+++ b/obj/NiSpecularProperty.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISPECULARPROPERTY_H_
 #define _NISPECULARPROPERTY_H_
 
+#include "NiProperty.h"
+
 #include "gen/obj_defines.h"
-#include NI_SPECULAR_PROPERTY_INCLUDE
 
 /*
  * NiSpecularProperty
diff --git a/obj/NiSphericalCollider.cpp b/obj/NiSphericalCollider.cpp
index 538e55aa..97b5c697 100644
--- a/obj/NiSphericalCollider.cpp
+++ b/obj/NiSphericalCollider.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiSphericalCollider.h"
+#include "obj/NiSphericalCollider.h"
 
 //Definition of TYPE constant
 const Type NiSphericalCollider::TYPE("NiSphericalCollider", &NI_SPHERICAL_COLLIDER_PARENT::TYPE );
diff --git a/obj/NiSphericalCollider.h b/obj/NiSphericalCollider.h
index 73ce08dc..afa38247 100644
--- a/obj/NiSphericalCollider.h
+++ b/obj/NiSphericalCollider.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISPHERICALCOLLIDER_H_
 #define _NISPHERICALCOLLIDER_H_
 
+#include "AParticleModifier.h"
+
 #include "gen/obj_defines.h"
-#include NI_SPHERICAL_COLLIDER_INCLUDE
 
 /*
  * NiSphericalCollider
diff --git a/obj/NiSpotLight.cpp b/obj/NiSpotLight.cpp
index 01485ffb..aa45b683 100644
--- a/obj/NiSpotLight.cpp
+++ b/obj/NiSpotLight.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiSpotLight.h"
+#include "obj/NiSpotLight.h"
 
 //Definition of TYPE constant
 const Type NiSpotLight::TYPE("NiSpotLight", &NI_SPOT_LIGHT_PARENT::TYPE );
diff --git a/obj/NiSpotLight.h b/obj/NiSpotLight.h
index 7c51f347..7777c44f 100644
--- a/obj/NiSpotLight.h
+++ b/obj/NiSpotLight.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISPOTLIGHT_H_
 #define _NISPOTLIGHT_H_
 
+#include "NiPointLight.h"
+
 #include "gen/obj_defines.h"
-#include NI_SPOT_LIGHT_INCLUDE
 
 /*
  * NiSpotLight
diff --git a/obj/NiStencilProperty.cpp b/obj/NiStencilProperty.cpp
index 74584898..99e39fb1 100644
--- a/obj/NiStencilProperty.cpp
+++ b/obj/NiStencilProperty.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiStencilProperty.h"
+#include "obj/NiStencilProperty.h"
 
 //Definition of TYPE constant
 const Type NiStencilProperty::TYPE("NiStencilProperty", &NI_STENCIL_PROPERTY_PARENT::TYPE );
diff --git a/obj/NiStencilProperty.h b/obj/NiStencilProperty.h
index b2c537a7..4d42118a 100644
--- a/obj/NiStencilProperty.h
+++ b/obj/NiStencilProperty.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISTENCILPROPERTY_H_
 #define _NISTENCILPROPERTY_H_
 
+#include "NiProperty.h"
+
 #include "gen/obj_defines.h"
-#include NI_STENCIL_PROPERTY_INCLUDE
 
 /*
  * NiStencilProperty
diff --git a/obj/NiStringExtraData.cpp b/obj/NiStringExtraData.cpp
index 243abdb7..19d4c277 100644
--- a/obj/NiStringExtraData.cpp
+++ b/obj/NiStringExtraData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiStringExtraData.h"
+#include "obj/NiStringExtraData.h"
 
 //Definition of TYPE constant
 const Type NiStringExtraData::TYPE("NiStringExtraData", &NI_STRING_EXTRA_DATA_PARENT::TYPE );
diff --git a/obj/NiStringExtraData.h b/obj/NiStringExtraData.h
index 6e70cfa5..5852e3ce 100644
--- a/obj/NiStringExtraData.h
+++ b/obj/NiStringExtraData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISTRINGEXTRADATA_H_
 #define _NISTRINGEXTRADATA_H_
 
+#include "NiExtraData.h"
+
 #include "gen/obj_defines.h"
-#include NI_STRING_EXTRA_DATA_INCLUDE
 
 /*
  * NiStringExtraData
diff --git a/obj/NiStringPalette.cpp b/obj/NiStringPalette.cpp
index ca7b2c79..b1f4d663 100644
--- a/obj/NiStringPalette.cpp
+++ b/obj/NiStringPalette.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiStringPalette.h"
+#include "obj/NiStringPalette.h"
+#include "gen/StringPalette.h"
 
 //Definition of TYPE constant
 const Type NiStringPalette::TYPE("NiStringPalette", &NI_STRING_PALETTE_PARENT::TYPE );
diff --git a/obj/NiStringPalette.h b/obj/NiStringPalette.h
index ccaa147f..766c56fc 100644
--- a/obj/NiStringPalette.h
+++ b/obj/NiStringPalette.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISTRINGPALETTE_H_
 #define _NISTRINGPALETTE_H_
 
+#include "NiObject.h"
+#include "gen/StringPalette.h"
+
 #include "gen/obj_defines.h"
-#include NI_STRING_PALETTE_INCLUDE
 
 /*
  * NiStringPalette
diff --git a/obj/NiStringsExtraData.cpp b/obj/NiStringsExtraData.cpp
index 2f5b00e6..7669dc04 100644
--- a/obj/NiStringsExtraData.cpp
+++ b/obj/NiStringsExtraData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiStringsExtraData.h"
+#include "obj/NiStringsExtraData.h"
 
 //Definition of TYPE constant
 const Type NiStringsExtraData::TYPE("NiStringsExtraData", &NI_STRINGS_EXTRA_DATA_PARENT::TYPE );
diff --git a/obj/NiStringsExtraData.h b/obj/NiStringsExtraData.h
index e8bacb16..acaa679c 100644
--- a/obj/NiStringsExtraData.h
+++ b/obj/NiStringsExtraData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NISTRINGSEXTRADATA_H_
 #define _NISTRINGSEXTRADATA_H_
 
+#include "NiExtraData.h"
+
 #include "gen/obj_defines.h"
-#include NI_STRINGS_EXTRA_DATA_INCLUDE
 
 /*
  * NiStringsExtraData
diff --git a/obj/NiTextKeyExtraData.cpp b/obj/NiTextKeyExtraData.cpp
index 0d1c16e8..2c216df7 100644
--- a/obj/NiTextKeyExtraData.cpp
+++ b/obj/NiTextKeyExtraData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiTextKeyExtraData.h"
+#include "obj/NiTextKeyExtraData.h"
 
 //Definition of TYPE constant
 const Type NiTextKeyExtraData::TYPE("NiTextKeyExtraData", &NI_TEXT_KEY_EXTRA_DATA_PARENT::TYPE );
diff --git a/obj/NiTextKeyExtraData.h b/obj/NiTextKeyExtraData.h
index 4a04acda..627b9cc5 100644
--- a/obj/NiTextKeyExtraData.h
+++ b/obj/NiTextKeyExtraData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NITEXTKEYEXTRADATA_H_
 #define _NITEXTKEYEXTRADATA_H_
 
+#include "NiExtraData.h"
+
 #include "gen/obj_defines.h"
-#include NI_TEXT_KEY_EXTRA_DATA_INCLUDE
 
 /*
  * NiTextKeyExtraData
diff --git a/obj/NiTextureEffect.cpp b/obj/NiTextureEffect.cpp
index 314cb2f9..ccdd8466 100644
--- a/obj/NiTextureEffect.cpp
+++ b/obj/NiTextureEffect.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiTextureEffect.h"
-#include "NiSourceTexture.h"
+#include "obj/NiTextureEffect.h"
 
 //Definition of TYPE constant
 const Type NiTextureEffect::TYPE("NiTextureEffect", &NI_TEXTURE_EFFECT_PARENT::TYPE );
diff --git a/obj/NiTextureEffect.h b/obj/NiTextureEffect.h
index 2dce45de..c39b5d96 100644
--- a/obj/NiTextureEffect.h
+++ b/obj/NiTextureEffect.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NITEXTUREEFFECT_H_
 #define _NITEXTUREEFFECT_H_
 
+#include "NiDynamicEffect.h"
+#include "Ref.h"
+#include "obj/NiSourceTexture.h"
+
 #include "gen/obj_defines.h"
-#include NI_TEXTURE_EFFECT_INCLUDE
 
 /*
  * NiTextureEffect
diff --git a/obj/NiTextureTransformController.cpp b/obj/NiTextureTransformController.cpp
index 9b908b3d..65e6a2ff 100644
--- a/obj/NiTextureTransformController.cpp
+++ b/obj/NiTextureTransformController.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiTextureTransformController.h"
-#include "NiFloatData.h"
+#include "obj/NiTextureTransformController.h"
 
 //Definition of TYPE constant
 const Type NiTextureTransformController::TYPE("NiTextureTransformController", &NI_TEXTURE_TRANSFORM_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiTextureTransformController.h b/obj/NiTextureTransformController.h
index fb9f2577..8dd9eb11 100644
--- a/obj/NiTextureTransformController.h
+++ b/obj/NiTextureTransformController.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NITEXTURETRANSFORMCONTROLLER_H_
 #define _NITEXTURETRANSFORMCONTROLLER_H_
 
+#include "NiSingleInterpolatorController.h"
+#include "Ref.h"
+#include "obj/NiFloatData.h"
+
 #include "gen/obj_defines.h"
-#include NI_TEXTURE_TRANSFORM_CONTROLLER_INCLUDE
 
 /*
  * NiTextureTransformController
diff --git a/obj/NiTexturingProperty.cpp b/obj/NiTexturingProperty.cpp
index 9dd359aa..843187e8 100644
--- a/obj/NiTexturingProperty.cpp
+++ b/obj/NiTexturingProperty.cpp
@@ -1,16 +1,17 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiTexturingProperty.h"
-#include "NiSourceTexture.h"
-#include "NiSourceTexture.h"
-#include "NiSourceTexture.h"
-#include "NiSourceTexture.h"
-#include "NiSourceTexture.h"
-#include "NiSourceTexture.h"
-#include "NiSourceTexture.h"
-#include "NiSourceTexture.h"
-#include "NiSourceTexture.h"
+#include "obj/NiTexturingProperty.h"
+#include "gen/TexDesc.h"
+#include "gen/TexDesc.h"
+#include "gen/TexDesc.h"
+#include "gen/TexDesc.h"
+#include "gen/TexDesc.h"
+#include "gen/TexDesc.h"
+#include "gen/TexDesc.h"
+#include "gen/TexDesc.h"
+#include "gen/ShaderTexDesc.h"
+#include "gen/TexDesc.h"
 
 //Definition of TYPE constant
 const Type NiTexturingProperty::TYPE("NiTexturingProperty", &NI_TEXTURING_PROPERTY_PARENT::TYPE );
diff --git a/obj/NiTexturingProperty.h b/obj/NiTexturingProperty.h
index 26759a18..f8b690c8 100644
--- a/obj/NiTexturingProperty.h
+++ b/obj/NiTexturingProperty.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NITEXTURINGPROPERTY_H_
 #define _NITEXTURINGPROPERTY_H_
 
+#include "NiProperty.h"
+#include "gen/TexDesc.h"
+#include "gen/ShaderTexDesc.h"
+
 #include "gen/obj_defines.h"
-#include NI_TEXTURING_PROPERTY_INCLUDE
 
 /*
  * NiTexturingProperty
diff --git a/obj/NiTimeController.cpp b/obj/NiTimeController.cpp
index aa45580b..1b3fc4fd 100644
--- a/obj/NiTimeController.cpp
+++ b/obj/NiTimeController.cpp
@@ -1,9 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiTimeController.h"
-#include "NiTimeController.h"
-#include "NiObject.h"
+#include "obj/NiTimeController.h"
+#include "obj/NiObject.h"
 
 //Definition of TYPE constant
 const Type NiTimeController::TYPE("NiTimeController", &NI_TIME_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiTimeController.h b/obj/NiTimeController.h
index d7fa1ac3..e5632db0 100644
--- a/obj/NiTimeController.h
+++ b/obj/NiTimeController.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NITIMECONTROLLER_H_
 #define _NITIMECONTROLLER_H_
 
+#include "NiObject.h"
+class NiObject;
+
 #include "gen/obj_defines.h"
-#include NI_TIME_CONTROLLER_INCLUDE
 
 /*
  * NiTimeController
diff --git a/obj/NiTransformController.cpp b/obj/NiTransformController.cpp
index 71fe32a7..c8ce7a90 100644
--- a/obj/NiTransformController.cpp
+++ b/obj/NiTransformController.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiTransformController.h"
+#include "obj/NiTransformController.h"
 
 //Definition of TYPE constant
 const Type NiTransformController::TYPE("NiTransformController", &NI_TRANSFORM_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiTransformController.h b/obj/NiTransformController.h
index 045839b5..9a9c78c2 100644
--- a/obj/NiTransformController.h
+++ b/obj/NiTransformController.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NITRANSFORMCONTROLLER_H_
 #define _NITRANSFORMCONTROLLER_H_
 
+#include "NiSingleInterpolatorController.h"
+
 #include "gen/obj_defines.h"
-#include NI_TRANSFORM_CONTROLLER_INCLUDE
 
 /*
  * NiTransformController
diff --git a/obj/NiTransformData.cpp b/obj/NiTransformData.cpp
index c72ea40e..56ee9c91 100644
--- a/obj/NiTransformData.cpp
+++ b/obj/NiTransformData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiTransformData.h"
+#include "obj/NiTransformData.h"
 
 //Definition of TYPE constant
 const Type NiTransformData::TYPE("NiTransformData", &NI_TRANSFORM_DATA_PARENT::TYPE );
diff --git a/obj/NiTransformData.h b/obj/NiTransformData.h
index cb2c48de..e9da1db6 100644
--- a/obj/NiTransformData.h
+++ b/obj/NiTransformData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NITRANSFORMDATA_H_
 #define _NITRANSFORMDATA_H_
 
+#include "NiKeyframeData.h"
+
 #include "gen/obj_defines.h"
-#include NI_TRANSFORM_DATA_INCLUDE
 
 /*
  * NiTransformData
diff --git a/obj/NiTransformInterpolator.cpp b/obj/NiTransformInterpolator.cpp
index d6018622..bc264072 100644
--- a/obj/NiTransformInterpolator.cpp
+++ b/obj/NiTransformInterpolator.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiTransformInterpolator.h"
-#include "NiTransformData.h"
+#include "obj/NiTransformInterpolator.h"
 
 //Definition of TYPE constant
 const Type NiTransformInterpolator::TYPE("NiTransformInterpolator", &NI_TRANSFORM_INTERPOLATOR_PARENT::TYPE );
diff --git a/obj/NiTransformInterpolator.h b/obj/NiTransformInterpolator.h
index e0f7fd2e..d29f0bbd 100644
--- a/obj/NiTransformInterpolator.h
+++ b/obj/NiTransformInterpolator.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NITRANSFORMINTERPOLATOR_H_
 #define _NITRANSFORMINTERPOLATOR_H_
 
+#include "NiInterpolator.h"
+#include "Ref.h"
+#include "obj/NiTransformData.h"
+
 #include "gen/obj_defines.h"
-#include NI_TRANSFORM_INTERPOLATOR_INCLUDE
 
 /*
  * NiTransformInterpolator
diff --git a/obj/NiTriBasedGeom.cpp b/obj/NiTriBasedGeom.cpp
index 5de26387..040f27ab 100644
--- a/obj/NiTriBasedGeom.cpp
+++ b/obj/NiTriBasedGeom.cpp
@@ -1,10 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiTriBasedGeom.h"
-#include "NiTriBasedGeomData.h"
-#include "NiSkinInstance.h"
-#include "NiObject.h"
+#include "obj/NiTriBasedGeom.h"
 
 //Definition of TYPE constant
 const Type NiTriBasedGeom::TYPE("NiTriBasedGeom", &NI_TRI_BASED_GEOM_PARENT::TYPE );
diff --git a/obj/NiTriBasedGeom.h b/obj/NiTriBasedGeom.h
index d2f356b7..68cf3756 100644
--- a/obj/NiTriBasedGeom.h
+++ b/obj/NiTriBasedGeom.h
@@ -4,8 +4,13 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NITRIBASEDGEOM_H_
 #define _NITRIBASEDGEOM_H_
 
+#include "NiAVObject.h"
+#include "Ref.h"
+#include "obj/NiTriBasedGeomData.h"
+#include "obj/NiSkinInstance.h"
+#include "obj/NiObject.h"
+
 #include "gen/obj_defines.h"
-#include NI_TRI_BASED_GEOM_INCLUDE
 
 /*
  * NiTriBasedGeom
diff --git a/obj/NiTriBasedGeomData.cpp b/obj/NiTriBasedGeomData.cpp
index 301194e8..f24d33ea 100644
--- a/obj/NiTriBasedGeomData.cpp
+++ b/obj/NiTriBasedGeomData.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiTriBasedGeomData.h"
-#include "NiObject.h"
+#include "obj/NiTriBasedGeomData.h"
 
 //Definition of TYPE constant
 const Type NiTriBasedGeomData::TYPE("NiTriBasedGeomData", &NI_TRI_BASED_GEOM_DATA_PARENT::TYPE );
diff --git a/obj/NiTriBasedGeomData.h b/obj/NiTriBasedGeomData.h
index 1719e829..af76ac9b 100644
--- a/obj/NiTriBasedGeomData.h
+++ b/obj/NiTriBasedGeomData.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NITRIBASEDGEOMDATA_H_
 #define _NITRIBASEDGEOMDATA_H_
 
+#include "NiObject.h"
+#include "Ref.h"
+#include "obj/NiObject.h"
+
 #include "gen/obj_defines.h"
-#include NI_TRI_BASED_GEOM_DATA_INCLUDE
 
 /*
  * NiTriBasedGeomData
diff --git a/obj/NiTriShape.cpp b/obj/NiTriShape.cpp
index ba347d60..8f8c32c3 100644
--- a/obj/NiTriShape.cpp
+++ b/obj/NiTriShape.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiTriShape.h"
+#include "obj/NiTriShape.h"
 
 //Definition of TYPE constant
 const Type NiTriShape::TYPE("NiTriShape", &NI_TRI_SHAPE_PARENT::TYPE );
diff --git a/obj/NiTriShape.h b/obj/NiTriShape.h
index c83770f8..c6b13e97 100644
--- a/obj/NiTriShape.h
+++ b/obj/NiTriShape.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NITRISHAPE_H_
 #define _NITRISHAPE_H_
 
+#include "NiTriBasedGeom.h"
+
 #include "gen/obj_defines.h"
-#include NI_TRI_SHAPE_INCLUDE
 
 /*
  * NiTriShape
diff --git a/obj/NiTriShapeData.cpp b/obj/NiTriShapeData.cpp
index a14018c6..4f5ba733 100644
--- a/obj/NiTriShapeData.cpp
+++ b/obj/NiTriShapeData.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiTriShapeData.h"
+#include "obj/NiTriShapeData.h"
+#include "gen/MatchGroup.h"
 
 //Definition of TYPE constant
 const Type NiTriShapeData::TYPE("NiTriShapeData", &NI_TRI_SHAPE_DATA_PARENT::TYPE );
diff --git a/obj/NiTriShapeData.h b/obj/NiTriShapeData.h
index b537305a..110d84df 100644
--- a/obj/NiTriShapeData.h
+++ b/obj/NiTriShapeData.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NITRISHAPEDATA_H_
 #define _NITRISHAPEDATA_H_
 
+#include "NiTriBasedGeomData.h"
+#include "gen/MatchGroup.h"
+
 #include "gen/obj_defines.h"
-#include NI_TRI_SHAPE_DATA_INCLUDE
 
 /*
  * NiTriShapeData
diff --git a/obj/NiTriStrips.cpp b/obj/NiTriStrips.cpp
index 72ce2d36..bb758cd0 100644
--- a/obj/NiTriStrips.cpp
+++ b/obj/NiTriStrips.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiTriStrips.h"
+#include "obj/NiTriStrips.h"
 
 //Definition of TYPE constant
 const Type NiTriStrips::TYPE("NiTriStrips", &NI_TRI_STRIPS_PARENT::TYPE );
diff --git a/obj/NiTriStrips.h b/obj/NiTriStrips.h
index 2c35f1ca..0b558aa5 100644
--- a/obj/NiTriStrips.h
+++ b/obj/NiTriStrips.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NITRISTRIPS_H_
 #define _NITRISTRIPS_H_
 
+#include "NiTriBasedGeom.h"
+
 #include "gen/obj_defines.h"
-#include NI_TRI_STRIPS_INCLUDE
 
 /*
  * NiTriStrips
diff --git a/obj/NiTriStripsData.cpp b/obj/NiTriStripsData.cpp
index 2747b62d..d4645c10 100644
--- a/obj/NiTriStripsData.cpp
+++ b/obj/NiTriStripsData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiTriStripsData.h"
+#include "obj/NiTriStripsData.h"
 
 //Definition of TYPE constant
 const Type NiTriStripsData::TYPE("NiTriStripsData", &NI_TRI_STRIPS_DATA_PARENT::TYPE );
diff --git a/obj/NiTriStripsData.h b/obj/NiTriStripsData.h
index 246376f4..f775a78a 100644
--- a/obj/NiTriStripsData.h
+++ b/obj/NiTriStripsData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NITRISTRIPSDATA_H_
 #define _NITRISTRIPSDATA_H_
 
+#include "NiTriBasedGeomData.h"
+
 #include "gen/obj_defines.h"
-#include NI_TRI_STRIPS_DATA_INCLUDE
 
 /*
  * NiTriStripsData
diff --git a/obj/NiUVController.cpp b/obj/NiUVController.cpp
index cf0b35fa..b1c69460 100644
--- a/obj/NiUVController.cpp
+++ b/obj/NiUVController.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiUVController.h"
-#include "NiUVData.h"
+#include "obj/NiUVController.h"
 
 //Definition of TYPE constant
 const Type NiUVController::TYPE("NiUVController", &NI_U_V_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiUVController.h b/obj/NiUVController.h
index 269e4ea0..d6750690 100644
--- a/obj/NiUVController.h
+++ b/obj/NiUVController.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIUVCONTROLLER_H_
 #define _NIUVCONTROLLER_H_
 
+#include "NiTimeController.h"
+#include "Ref.h"
+#include "obj/NiUVData.h"
+
 #include "gen/obj_defines.h"
-#include NI_U_V_CONTROLLER_INCLUDE
 
 /*
  * NiUVController
diff --git a/obj/NiUVData.cpp b/obj/NiUVData.cpp
index da9cb229..819be468 100644
--- a/obj/NiUVData.cpp
+++ b/obj/NiUVData.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiUVData.h"
+#include "obj/NiUVData.h"
+#include "gen/KeyGroup.h"
 
 //Definition of TYPE constant
 const Type NiUVData::TYPE("NiUVData", &NI_U_V_DATA_PARENT::TYPE );
diff --git a/obj/NiUVData.h b/obj/NiUVData.h
index 341bc046..52e9c8d6 100644
--- a/obj/NiUVData.h
+++ b/obj/NiUVData.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIUVDATA_H_
 #define _NIUVDATA_H_
 
+#include "NiObject.h"
+#include "gen/KeyGroup.h"
+
 #include "gen/obj_defines.h"
-#include NI_U_V_DATA_INCLUDE
 
 /*
  * NiUVData
diff --git a/obj/NiVectorExtraData.cpp b/obj/NiVectorExtraData.cpp
index 5817ef3d..0a094f85 100644
--- a/obj/NiVectorExtraData.cpp
+++ b/obj/NiVectorExtraData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiVectorExtraData.h"
+#include "obj/NiVectorExtraData.h"
 
 //Definition of TYPE constant
 const Type NiVectorExtraData::TYPE("NiVectorExtraData", &NI_VECTOR_EXTRA_DATA_PARENT::TYPE );
diff --git a/obj/NiVectorExtraData.h b/obj/NiVectorExtraData.h
index 42e1787f..6fcccabf 100644
--- a/obj/NiVectorExtraData.h
+++ b/obj/NiVectorExtraData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIVECTOREXTRADATA_H_
 #define _NIVECTOREXTRADATA_H_
 
+#include "NiExtraData.h"
+
 #include "gen/obj_defines.h"
-#include NI_VECTOR_EXTRA_DATA_INCLUDE
 
 /*
  * NiVectorExtraData
diff --git a/obj/NiVertWeightsExtraData.cpp b/obj/NiVertWeightsExtraData.cpp
index 84297de5..f9165695 100644
--- a/obj/NiVertWeightsExtraData.cpp
+++ b/obj/NiVertWeightsExtraData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiVertWeightsExtraData.h"
+#include "obj/NiVertWeightsExtraData.h"
 
 //Definition of TYPE constant
 const Type NiVertWeightsExtraData::TYPE("NiVertWeightsExtraData", &NI_VERT_WEIGHTS_EXTRA_DATA_PARENT::TYPE );
diff --git a/obj/NiVertWeightsExtraData.h b/obj/NiVertWeightsExtraData.h
index b26aad13..493dc204 100644
--- a/obj/NiVertWeightsExtraData.h
+++ b/obj/NiVertWeightsExtraData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIVERTWEIGHTSEXTRADATA_H_
 #define _NIVERTWEIGHTSEXTRADATA_H_
 
+#include "NiExtraData.h"
+
 #include "gen/obj_defines.h"
-#include NI_VERT_WEIGHTS_EXTRA_DATA_INCLUDE
 
 /*
  * NiVertWeightsExtraData
diff --git a/obj/NiVertexColorProperty.cpp b/obj/NiVertexColorProperty.cpp
index d25fb9fc..7db1db06 100644
--- a/obj/NiVertexColorProperty.cpp
+++ b/obj/NiVertexColorProperty.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiVertexColorProperty.h"
+#include "obj/NiVertexColorProperty.h"
 
 //Definition of TYPE constant
 const Type NiVertexColorProperty::TYPE("NiVertexColorProperty", &NI_VERTEX_COLOR_PROPERTY_PARENT::TYPE );
diff --git a/obj/NiVertexColorProperty.h b/obj/NiVertexColorProperty.h
index 77df5dff..5e5504ca 100644
--- a/obj/NiVertexColorProperty.h
+++ b/obj/NiVertexColorProperty.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIVERTEXCOLORPROPERTY_H_
 #define _NIVERTEXCOLORPROPERTY_H_
 
+#include "NiProperty.h"
+
 #include "gen/obj_defines.h"
-#include NI_VERTEX_COLOR_PROPERTY_INCLUDE
 
 /*
  * NiVertexColorProperty
diff --git a/obj/NiVisController.cpp b/obj/NiVisController.cpp
index c6a14c87..e03fe7b4 100644
--- a/obj/NiVisController.cpp
+++ b/obj/NiVisController.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiVisController.h"
-#include "NiVisData.h"
+#include "obj/NiVisController.h"
 
 //Definition of TYPE constant
 const Type NiVisController::TYPE("NiVisController", &NI_VIS_CONTROLLER_PARENT::TYPE );
diff --git a/obj/NiVisController.h b/obj/NiVisController.h
index 52eb3955..091b4836 100644
--- a/obj/NiVisController.h
+++ b/obj/NiVisController.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIVISCONTROLLER_H_
 #define _NIVISCONTROLLER_H_
 
+#include "NiSingleInterpolatorController.h"
+#include "Ref.h"
+#include "obj/NiVisData.h"
+
 #include "gen/obj_defines.h"
-#include NI_VIS_CONTROLLER_INCLUDE
 
 /*
  * NiVisController
diff --git a/obj/NiVisData.cpp b/obj/NiVisData.cpp
index 42bfb31c..0eda2e7e 100644
--- a/obj/NiVisData.cpp
+++ b/obj/NiVisData.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiVisData.h"
+#include "obj/NiVisData.h"
 
 //Definition of TYPE constant
 const Type NiVisData::TYPE("NiVisData", &NI_VIS_DATA_PARENT::TYPE );
diff --git a/obj/NiVisData.h b/obj/NiVisData.h
index e5a54dbf..3d00d8bd 100644
--- a/obj/NiVisData.h
+++ b/obj/NiVisData.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIVISDATA_H_
 #define _NIVISDATA_H_
 
+#include "AKeyedData.h"
+
 #include "gen/obj_defines.h"
-#include NI_VIS_DATA_INCLUDE
 
 /*
  * NiVisData
diff --git a/obj/NiWireframeProperty.cpp b/obj/NiWireframeProperty.cpp
index 0bc5aa13..50a0849b 100644
--- a/obj/NiWireframeProperty.cpp
+++ b/obj/NiWireframeProperty.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiWireframeProperty.h"
+#include "obj/NiWireframeProperty.h"
 
 //Definition of TYPE constant
 const Type NiWireframeProperty::TYPE("NiWireframeProperty", &NI_WIREFRAME_PROPERTY_PARENT::TYPE );
diff --git a/obj/NiWireframeProperty.h b/obj/NiWireframeProperty.h
index a556d54d..149163be 100644
--- a/obj/NiWireframeProperty.h
+++ b/obj/NiWireframeProperty.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIWIREFRAMEPROPERTY_H_
 #define _NIWIREFRAMEPROPERTY_H_
 
+#include "NiProperty.h"
+
 #include "gen/obj_defines.h"
-#include NI_WIREFRAME_PROPERTY_INCLUDE
 
 /*
  * NiWireframeProperty
diff --git a/obj/NiZBufferProperty.cpp b/obj/NiZBufferProperty.cpp
index f63ce689..1806f432 100644
--- a/obj/NiZBufferProperty.cpp
+++ b/obj/NiZBufferProperty.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "NiZBufferProperty.h"
+#include "obj/NiZBufferProperty.h"
 
 //Definition of TYPE constant
 const Type NiZBufferProperty::TYPE("NiZBufferProperty", &NI_Z_BUFFER_PROPERTY_PARENT::TYPE );
diff --git a/obj/NiZBufferProperty.h b/obj/NiZBufferProperty.h
index c78e1244..bac2cef8 100644
--- a/obj/NiZBufferProperty.h
+++ b/obj/NiZBufferProperty.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _NIZBUFFERPROPERTY_H_
 #define _NIZBUFFERPROPERTY_H_
 
+#include "NiProperty.h"
+
 #include "gen/obj_defines.h"
-#include NI_Z_BUFFER_PROPERTY_INCLUDE
 
 /*
  * NiZBufferProperty
diff --git a/obj/RootCollisionNode.cpp b/obj/RootCollisionNode.cpp
index 69f3766b..30a14064 100644
--- a/obj/RootCollisionNode.cpp
+++ b/obj/RootCollisionNode.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "RootCollisionNode.h"
+#include "obj/RootCollisionNode.h"
 
 //Definition of TYPE constant
 const Type RootCollisionNode::TYPE("RootCollisionNode", &ROOT_COLLISION_NODE_PARENT::TYPE );
diff --git a/obj/RootCollisionNode.h b/obj/RootCollisionNode.h
index f4955853..2791b358 100644
--- a/obj/RootCollisionNode.h
+++ b/obj/RootCollisionNode.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _ROOTCOLLISIONNODE_H_
 #define _ROOTCOLLISIONNODE_H_
 
+#include "NiNode.h"
+
 #include "gen/obj_defines.h"
-#include ROOT_COLLISION_NODE_INCLUDE
 
 /*
  * RootCollisionNode
diff --git a/obj/bhkBlendCollisionObject.cpp b/obj/bhkBlendCollisionObject.cpp
index 486479fd..1783cecc 100644
--- a/obj/bhkBlendCollisionObject.cpp
+++ b/obj/bhkBlendCollisionObject.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkBlendCollisionObject.h"
+#include "obj/bhkBlendCollisionObject.h"
 
 //Definition of TYPE constant
 const Type bhkBlendCollisionObject::TYPE("bhkBlendCollisionObject", &BHK_BLEND_COLLISION_OBJECT_PARENT::TYPE );
diff --git a/obj/bhkBlendCollisionObject.h b/obj/bhkBlendCollisionObject.h
index 0154c81e..14ddab76 100644
--- a/obj/bhkBlendCollisionObject.h
+++ b/obj/bhkBlendCollisionObject.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKBLENDCOLLISIONOBJECT_H_
 #define _BHKBLENDCOLLISIONOBJECT_H_
 
+#include "NiCollisionObject.h"
+
 #include "gen/obj_defines.h"
-#include BHK_BLEND_COLLISION_OBJECT_INCLUDE
 
 /*
  * bhkBlendCollisionObject
diff --git a/obj/bhkBlendController.cpp b/obj/bhkBlendController.cpp
index 8643ed91..7ae28ac9 100644
--- a/obj/bhkBlendController.cpp
+++ b/obj/bhkBlendController.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkBlendController.h"
+#include "obj/bhkBlendController.h"
 
 //Definition of TYPE constant
 const Type bhkBlendController::TYPE("bhkBlendController", &BHK_BLEND_CONTROLLER_PARENT::TYPE );
diff --git a/obj/bhkBlendController.h b/obj/bhkBlendController.h
index d0a596d7..0bd7f15b 100644
--- a/obj/bhkBlendController.h
+++ b/obj/bhkBlendController.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKBLENDCONTROLLER_H_
 #define _BHKBLENDCONTROLLER_H_
 
+#include "NiTimeController.h"
+
 #include "gen/obj_defines.h"
-#include BHK_BLEND_CONTROLLER_INCLUDE
 
 /*
  * bhkBlendController
diff --git a/obj/bhkBoxShape.cpp b/obj/bhkBoxShape.cpp
index 7effabb2..486b2dab 100644
--- a/obj/bhkBoxShape.cpp
+++ b/obj/bhkBoxShape.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkBoxShape.h"
+#include "obj/bhkBoxShape.h"
 
 //Definition of TYPE constant
 const Type bhkBoxShape::TYPE("bhkBoxShape", &BHK_BOX_SHAPE_PARENT::TYPE );
diff --git a/obj/bhkBoxShape.h b/obj/bhkBoxShape.h
index 52768fbf..d4d5b8d7 100644
--- a/obj/bhkBoxShape.h
+++ b/obj/bhkBoxShape.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKBOXSHAPE_H_
 #define _BHKBOXSHAPE_H_
 
+#include "bhkConvexShape.h"
+
 #include "gen/obj_defines.h"
-#include BHK_BOX_SHAPE_INCLUDE
 
 /*
  * bhkBoxShape
diff --git a/obj/bhkCapsuleShape.cpp b/obj/bhkCapsuleShape.cpp
index 670118a8..fdcd7144 100644
--- a/obj/bhkCapsuleShape.cpp
+++ b/obj/bhkCapsuleShape.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkCapsuleShape.h"
+#include "obj/bhkCapsuleShape.h"
 
 //Definition of TYPE constant
 const Type bhkCapsuleShape::TYPE("bhkCapsuleShape", &BHK_CAPSULE_SHAPE_PARENT::TYPE );
diff --git a/obj/bhkCapsuleShape.h b/obj/bhkCapsuleShape.h
index f19d7d87..927f60c7 100644
--- a/obj/bhkCapsuleShape.h
+++ b/obj/bhkCapsuleShape.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKCAPSULESHAPE_H_
 #define _BHKCAPSULESHAPE_H_
 
+#include "bhkConvexShape.h"
+
 #include "gen/obj_defines.h"
-#include BHK_CAPSULE_SHAPE_INCLUDE
 
 /*
  * bhkCapsuleShape
diff --git a/obj/bhkCollisionObject.cpp b/obj/bhkCollisionObject.cpp
index b3f126d2..9b7084f6 100644
--- a/obj/bhkCollisionObject.cpp
+++ b/obj/bhkCollisionObject.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkCollisionObject.h"
+#include "obj/bhkCollisionObject.h"
 
 //Definition of TYPE constant
 const Type bhkCollisionObject::TYPE("bhkCollisionObject", &BHK_COLLISION_OBJECT_PARENT::TYPE );
diff --git a/obj/bhkCollisionObject.h b/obj/bhkCollisionObject.h
index b4268bba..7a9d06d2 100644
--- a/obj/bhkCollisionObject.h
+++ b/obj/bhkCollisionObject.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKCOLLISIONOBJECT_H_
 #define _BHKCOLLISIONOBJECT_H_
 
+#include "NiCollisionObject.h"
+
 #include "gen/obj_defines.h"
-#include BHK_COLLISION_OBJECT_INCLUDE
 
 /*
  * bhkCollisionObject
diff --git a/obj/bhkConvexShape.cpp b/obj/bhkConvexShape.cpp
index e1639ae4..80002beb 100644
--- a/obj/bhkConvexShape.cpp
+++ b/obj/bhkConvexShape.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkConvexShape.h"
+#include "obj/bhkConvexShape.h"
 
 //Definition of TYPE constant
 const Type bhkConvexShape::TYPE("bhkConvexShape", &BHK_CONVEX_SHAPE_PARENT::TYPE );
diff --git a/obj/bhkConvexShape.h b/obj/bhkConvexShape.h
index c0aafdfc..9a5db313 100644
--- a/obj/bhkConvexShape.h
+++ b/obj/bhkConvexShape.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKCONVEXSHAPE_H_
 #define _BHKCONVEXSHAPE_H_
 
+#include "bhkSphereRepShape.h"
+
 #include "gen/obj_defines.h"
-#include BHK_CONVEX_SHAPE_INCLUDE
 
 /*
  * bhkConvexShape
diff --git a/obj/bhkConvexTransformShape.cpp b/obj/bhkConvexTransformShape.cpp
index e442bedd..1ba26c6f 100644
--- a/obj/bhkConvexTransformShape.cpp
+++ b/obj/bhkConvexTransformShape.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkConvexTransformShape.h"
+#include "obj/bhkConvexTransformShape.h"
 
 //Definition of TYPE constant
 const Type bhkConvexTransformShape::TYPE("bhkConvexTransformShape", &BHK_CONVEX_TRANSFORM_SHAPE_PARENT::TYPE );
diff --git a/obj/bhkConvexTransformShape.h b/obj/bhkConvexTransformShape.h
index 97589065..558920d8 100644
--- a/obj/bhkConvexTransformShape.h
+++ b/obj/bhkConvexTransformShape.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKCONVEXTRANSFORMSHAPE_H_
 #define _BHKCONVEXTRANSFORMSHAPE_H_
 
+#include "bhkTransformShape.h"
+
 #include "gen/obj_defines.h"
-#include BHK_CONVEX_TRANSFORM_SHAPE_INCLUDE
 
 /*
  * bhkConvexTransformShape
diff --git a/obj/bhkConvexVerticesShape.cpp b/obj/bhkConvexVerticesShape.cpp
index c6b4af29..10969271 100644
--- a/obj/bhkConvexVerticesShape.cpp
+++ b/obj/bhkConvexVerticesShape.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkConvexVerticesShape.h"
+#include "obj/bhkConvexVerticesShape.h"
 
 //Definition of TYPE constant
 const Type bhkConvexVerticesShape::TYPE("bhkConvexVerticesShape", &BHK_CONVEX_VERTICES_SHAPE_PARENT::TYPE );
diff --git a/obj/bhkConvexVerticesShape.h b/obj/bhkConvexVerticesShape.h
index 5813e48b..71e22e92 100644
--- a/obj/bhkConvexVerticesShape.h
+++ b/obj/bhkConvexVerticesShape.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKCONVEXVERTICESSHAPE_H_
 #define _BHKCONVEXVERTICESSHAPE_H_
 
+#include "bhkSphereRepShape.h"
+
 #include "gen/obj_defines.h"
-#include BHK_CONVEX_VERTICES_SHAPE_INCLUDE
 
 /*
  * bhkConvexVerticesShape
diff --git a/obj/bhkEntity.cpp b/obj/bhkEntity.cpp
index 58d9c520..2d48de33 100644
--- a/obj/bhkEntity.cpp
+++ b/obj/bhkEntity.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkEntity.h"
-#include "bhkShape.h"
+#include "obj/bhkEntity.h"
 
 //Definition of TYPE constant
 const Type bhkEntity::TYPE("bhkEntity", &BHK_ENTITY_PARENT::TYPE );
diff --git a/obj/bhkEntity.h b/obj/bhkEntity.h
index c1adafef..c1148818 100644
--- a/obj/bhkEntity.h
+++ b/obj/bhkEntity.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKENTITY_H_
 #define _BHKENTITY_H_
 
+#include "bhkWorldObject.h"
+#include "Ref.h"
+#include "obj/bhkShape.h"
+
 #include "gen/obj_defines.h"
-#include BHK_ENTITY_INCLUDE
 
 /*
  * bhkEntity
diff --git a/obj/bhkHingeConstraint.cpp b/obj/bhkHingeConstraint.cpp
index 68d3a9cf..7cd69869 100644
--- a/obj/bhkHingeConstraint.cpp
+++ b/obj/bhkHingeConstraint.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkHingeConstraint.h"
+#include "obj/bhkHingeConstraint.h"
 
 //Definition of TYPE constant
 const Type bhkHingeConstraint::TYPE("bhkHingeConstraint", &BHK_HINGE_CONSTRAINT_PARENT::TYPE );
diff --git a/obj/bhkHingeConstraint.h b/obj/bhkHingeConstraint.h
index dd076148..d851bcc3 100644
--- a/obj/bhkHingeConstraint.h
+++ b/obj/bhkHingeConstraint.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKHINGECONSTRAINT_H_
 #define _BHKHINGECONSTRAINT_H_
 
+#include "AbhkConstraint.h"
+
 #include "gen/obj_defines.h"
-#include BHK_HINGE_CONSTRAINT_INCLUDE
 
 /*
  * bhkHingeConstraint
diff --git a/obj/bhkLimitedHingeConstraint.cpp b/obj/bhkLimitedHingeConstraint.cpp
index 0b8bd537..0d125542 100644
--- a/obj/bhkLimitedHingeConstraint.cpp
+++ b/obj/bhkLimitedHingeConstraint.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkLimitedHingeConstraint.h"
+#include "obj/bhkLimitedHingeConstraint.h"
+#include "gen/LimitedHingeDescriptor.h"
 
 //Definition of TYPE constant
 const Type bhkLimitedHingeConstraint::TYPE("bhkLimitedHingeConstraint", &BHK_LIMITED_HINGE_CONSTRAINT_PARENT::TYPE );
diff --git a/obj/bhkLimitedHingeConstraint.h b/obj/bhkLimitedHingeConstraint.h
index 75c00128..be1b8159 100644
--- a/obj/bhkLimitedHingeConstraint.h
+++ b/obj/bhkLimitedHingeConstraint.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKLIMITEDHINGECONSTRAINT_H_
 #define _BHKLIMITEDHINGECONSTRAINT_H_
 
+#include "AbhkConstraint.h"
+#include "gen/LimitedHingeDescriptor.h"
+
 #include "gen/obj_defines.h"
-#include BHK_LIMITED_HINGE_CONSTRAINT_INCLUDE
 
 /*
  * bhkLimitedHingeConstraint
diff --git a/obj/bhkListShape.cpp b/obj/bhkListShape.cpp
index c246361a..45c43429 100644
--- a/obj/bhkListShape.cpp
+++ b/obj/bhkListShape.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkListShape.h"
-#include "bhkShape.h"
+#include "obj/bhkListShape.h"
 
 //Definition of TYPE constant
 const Type bhkListShape::TYPE("bhkListShape", &BHK_LIST_SHAPE_PARENT::TYPE );
diff --git a/obj/bhkListShape.h b/obj/bhkListShape.h
index 7ca94099..14bf4546 100644
--- a/obj/bhkListShape.h
+++ b/obj/bhkListShape.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKLISTSHAPE_H_
 #define _BHKLISTSHAPE_H_
 
+#include "AbhkShapeCollection.h"
+#include "Ref.h"
+#include "obj/bhkShape.h"
+
 #include "gen/obj_defines.h"
-#include BHK_LIST_SHAPE_INCLUDE
 
 /*
  * bhkListShape
diff --git a/obj/bhkMalleableConstraint.cpp b/obj/bhkMalleableConstraint.cpp
index ff5168ff..12167bff 100644
--- a/obj/bhkMalleableConstraint.cpp
+++ b/obj/bhkMalleableConstraint.cpp
@@ -1,9 +1,9 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkMalleableConstraint.h"
-#include "NiObject.h"
-#include "NiObject.h"
+#include "obj/bhkMalleableConstraint.h"
+#include "gen/RagDollDescriptor.h"
+#include "gen/LimitedHingeDescriptor.h"
 
 //Definition of TYPE constant
 const Type bhkMalleableConstraint::TYPE("bhkMalleableConstraint", &BHK_MALLEABLE_CONSTRAINT_PARENT::TYPE );
diff --git a/obj/bhkMalleableConstraint.h b/obj/bhkMalleableConstraint.h
index 7b5d8fe1..39d50f4d 100644
--- a/obj/bhkMalleableConstraint.h
+++ b/obj/bhkMalleableConstraint.h
@@ -4,8 +4,13 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKMALLEABLECONSTRAINT_H_
 #define _BHKMALLEABLECONSTRAINT_H_
 
+#include "AbhkConstraint.h"
+#include "Ref.h"
+#include "obj/NiObject.h"
+#include "gen/RagDollDescriptor.h"
+#include "gen/LimitedHingeDescriptor.h"
+
 #include "gen/obj_defines.h"
-#include BHK_MALLEABLE_CONSTRAINT_INCLUDE
 
 /*
  * bhkMalleableConstraint
diff --git a/obj/bhkMoppBvTreeShape.cpp b/obj/bhkMoppBvTreeShape.cpp
index ae0f223e..a65a31f6 100644
--- a/obj/bhkMoppBvTreeShape.cpp
+++ b/obj/bhkMoppBvTreeShape.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkMoppBvTreeShape.h"
-#include "bhkShape.h"
+#include "obj/bhkMoppBvTreeShape.h"
 
 //Definition of TYPE constant
 const Type bhkMoppBvTreeShape::TYPE("bhkMoppBvTreeShape", &BHK_MOPP_BV_TREE_SHAPE_PARENT::TYPE );
diff --git a/obj/bhkMoppBvTreeShape.h b/obj/bhkMoppBvTreeShape.h
index e058820e..37e311e1 100644
--- a/obj/bhkMoppBvTreeShape.h
+++ b/obj/bhkMoppBvTreeShape.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKMOPPBVTREESHAPE_H_
 #define _BHKMOPPBVTREESHAPE_H_
 
+#include "bhkShape.h"
+#include "Ref.h"
+#include "obj/bhkShape.h"
+
 #include "gen/obj_defines.h"
-#include BHK_MOPP_BV_TREE_SHAPE_INCLUDE
 
 /*
  * bhkMoppBvTreeShape
diff --git a/obj/bhkMultiSphereShape.cpp b/obj/bhkMultiSphereShape.cpp
index 4914c8a4..3cb715d0 100644
--- a/obj/bhkMultiSphereShape.cpp
+++ b/obj/bhkMultiSphereShape.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkMultiSphereShape.h"
+#include "obj/bhkMultiSphereShape.h"
 
 //Definition of TYPE constant
 const Type bhkMultiSphereShape::TYPE("bhkMultiSphereShape", &BHK_MULTI_SPHERE_SHAPE_PARENT::TYPE );
diff --git a/obj/bhkMultiSphereShape.h b/obj/bhkMultiSphereShape.h
index 48619888..eae68f49 100644
--- a/obj/bhkMultiSphereShape.h
+++ b/obj/bhkMultiSphereShape.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKMULTISPHERESHAPE_H_
 #define _BHKMULTISPHERESHAPE_H_
 
+#include "bhkSphereRepShape.h"
+
 #include "gen/obj_defines.h"
-#include BHK_MULTI_SPHERE_SHAPE_INCLUDE
 
 /*
  * bhkMultiSphereShape
diff --git a/obj/bhkNiTriStripsShape.cpp b/obj/bhkNiTriStripsShape.cpp
index 7bcafe15..851ee687 100644
--- a/obj/bhkNiTriStripsShape.cpp
+++ b/obj/bhkNiTriStripsShape.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkNiTriStripsShape.h"
-#include "NiTriStripsData.h"
+#include "obj/bhkNiTriStripsShape.h"
 
 //Definition of TYPE constant
 const Type bhkNiTriStripsShape::TYPE("bhkNiTriStripsShape", &BHK_NI_TRI_STRIPS_SHAPE_PARENT::TYPE );
diff --git a/obj/bhkNiTriStripsShape.h b/obj/bhkNiTriStripsShape.h
index 93dcf774..c734b3bb 100644
--- a/obj/bhkNiTriStripsShape.h
+++ b/obj/bhkNiTriStripsShape.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKNITRISTRIPSSHAPE_H_
 #define _BHKNITRISTRIPSSHAPE_H_
 
+#include "bhkSphereRepShape.h"
+#include "Ref.h"
+#include "obj/NiTriStripsData.h"
+
 #include "gen/obj_defines.h"
-#include BHK_NI_TRI_STRIPS_SHAPE_INCLUDE
 
 /*
  * bhkNiTriStripsShape
diff --git a/obj/bhkPackedNiTriStripsShape.cpp b/obj/bhkPackedNiTriStripsShape.cpp
index 4709132c..ec715265 100644
--- a/obj/bhkPackedNiTriStripsShape.cpp
+++ b/obj/bhkPackedNiTriStripsShape.cpp
@@ -1,8 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkPackedNiTriStripsShape.h"
-#include "hkPackedNiTriStripsData.h"
+#include "obj/bhkPackedNiTriStripsShape.h"
 
 //Definition of TYPE constant
 const Type bhkPackedNiTriStripsShape::TYPE("bhkPackedNiTriStripsShape", &BHK_PACKED_NI_TRI_STRIPS_SHAPE_PARENT::TYPE );
diff --git a/obj/bhkPackedNiTriStripsShape.h b/obj/bhkPackedNiTriStripsShape.h
index 22013d97..9396e96f 100644
--- a/obj/bhkPackedNiTriStripsShape.h
+++ b/obj/bhkPackedNiTriStripsShape.h
@@ -4,8 +4,11 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKPACKEDNITRISTRIPSSHAPE_H_
 #define _BHKPACKEDNITRISTRIPSSHAPE_H_
 
+#include "AbhkShapeCollection.h"
+#include "Ref.h"
+#include "obj/hkPackedNiTriStripsData.h"
+
 #include "gen/obj_defines.h"
-#include BHK_PACKED_NI_TRI_STRIPS_SHAPE_INCLUDE
 
 /*
  * bhkPackedNiTriStripsShape
diff --git a/obj/bhkPrismaticConstraint.cpp b/obj/bhkPrismaticConstraint.cpp
index 733c294e..125d1130 100644
--- a/obj/bhkPrismaticConstraint.cpp
+++ b/obj/bhkPrismaticConstraint.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkPrismaticConstraint.h"
+#include "obj/bhkPrismaticConstraint.h"
 
 //Definition of TYPE constant
 const Type bhkPrismaticConstraint::TYPE("bhkPrismaticConstraint", &BHK_PRISMATIC_CONSTRAINT_PARENT::TYPE );
diff --git a/obj/bhkPrismaticConstraint.h b/obj/bhkPrismaticConstraint.h
index fef8fd00..1ec6b6ab 100644
--- a/obj/bhkPrismaticConstraint.h
+++ b/obj/bhkPrismaticConstraint.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKPRISMATICCONSTRAINT_H_
 #define _BHKPRISMATICCONSTRAINT_H_
 
+#include "AbhkConstraint.h"
+
 #include "gen/obj_defines.h"
-#include BHK_PRISMATIC_CONSTRAINT_INCLUDE
 
 /*
  * bhkPrismaticConstraint
diff --git a/obj/bhkRagdollConstraint.cpp b/obj/bhkRagdollConstraint.cpp
index fe9ffbb2..fab97db1 100644
--- a/obj/bhkRagdollConstraint.cpp
+++ b/obj/bhkRagdollConstraint.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkRagdollConstraint.h"
+#include "obj/bhkRagdollConstraint.h"
 
 //Definition of TYPE constant
 const Type bhkRagdollConstraint::TYPE("bhkRagdollConstraint", &BHK_RAGDOLL_CONSTRAINT_PARENT::TYPE );
diff --git a/obj/bhkRagdollConstraint.h b/obj/bhkRagdollConstraint.h
index 73f9f48f..7e827370 100644
--- a/obj/bhkRagdollConstraint.h
+++ b/obj/bhkRagdollConstraint.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKRAGDOLLCONSTRAINT_H_
 #define _BHKRAGDOLLCONSTRAINT_H_
 
+#include "AbhkRagdollConstraint.h"
+
 #include "gen/obj_defines.h"
-#include BHK_RAGDOLL_CONSTRAINT_INCLUDE
 
 /*
  * bhkRagdollConstraint
diff --git a/obj/bhkRefObject.cpp b/obj/bhkRefObject.cpp
index 348bb33a..37325ece 100644
--- a/obj/bhkRefObject.cpp
+++ b/obj/bhkRefObject.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkRefObject.h"
+#include "obj/bhkRefObject.h"
 
 //Definition of TYPE constant
 const Type bhkRefObject::TYPE("bhkRefObject", &BHK_REF_OBJECT_PARENT::TYPE );
diff --git a/obj/bhkRefObject.h b/obj/bhkRefObject.h
index d451abbc..3a73a269 100644
--- a/obj/bhkRefObject.h
+++ b/obj/bhkRefObject.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKREFOBJECT_H_
 #define _BHKREFOBJECT_H_
 
+#include "NiObject.h"
+
 #include "gen/obj_defines.h"
-#include BHK_REF_OBJECT_INCLUDE
 
 /*
  * bhkRefObject
diff --git a/obj/bhkRigidBody.cpp b/obj/bhkRigidBody.cpp
index 3697fdc6..0f29e5dd 100644
--- a/obj/bhkRigidBody.cpp
+++ b/obj/bhkRigidBody.cpp
@@ -1,8 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkRigidBody.h"
-#include "AbhkConstraint.h"
+#include "obj/bhkRigidBody.h"
+#include "gen/QuaternionXYZW.h"
 
 //Definition of TYPE constant
 const Type bhkRigidBody::TYPE("bhkRigidBody", &BHK_RIGID_BODY_PARENT::TYPE );
diff --git a/obj/bhkRigidBody.h b/obj/bhkRigidBody.h
index a1506c32..b2782ed7 100644
--- a/obj/bhkRigidBody.h
+++ b/obj/bhkRigidBody.h
@@ -4,8 +4,12 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKRIGIDBODY_H_
 #define _BHKRIGIDBODY_H_
 
+#include "bhkEntity.h"
+#include "gen/QuaternionXYZW.h"
+#include "Ref.h"
+#include "obj/AbhkConstraint.h"
+
 #include "gen/obj_defines.h"
-#include BHK_RIGID_BODY_INCLUDE
 
 /*
  * bhkRigidBody
diff --git a/obj/bhkRigidBodyT.cpp b/obj/bhkRigidBodyT.cpp
index 9f1c8afe..78fb4647 100644
--- a/obj/bhkRigidBodyT.cpp
+++ b/obj/bhkRigidBodyT.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkRigidBodyT.h"
+#include "obj/bhkRigidBodyT.h"
 
 //Definition of TYPE constant
 const Type bhkRigidBodyT::TYPE("bhkRigidBodyT", &BHK_RIGID_BODY_T_PARENT::TYPE );
diff --git a/obj/bhkRigidBodyT.h b/obj/bhkRigidBodyT.h
index b4bc8554..64e78e71 100644
--- a/obj/bhkRigidBodyT.h
+++ b/obj/bhkRigidBodyT.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKRIGIDBODYT_H_
 #define _BHKRIGIDBODYT_H_
 
+#include "bhkRigidBody.h"
+
 #include "gen/obj_defines.h"
-#include BHK_RIGID_BODY_T_INCLUDE
 
 /*
  * bhkRigidBodyT
diff --git a/obj/bhkSPCollisionObject.cpp b/obj/bhkSPCollisionObject.cpp
index 61dde371..4c390844 100644
--- a/obj/bhkSPCollisionObject.cpp
+++ b/obj/bhkSPCollisionObject.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkSPCollisionObject.h"
+#include "obj/bhkSPCollisionObject.h"
 
 //Definition of TYPE constant
 const Type bhkSPCollisionObject::TYPE("bhkSPCollisionObject", &BHK_S_P_COLLISION_OBJECT_PARENT::TYPE );
diff --git a/obj/bhkSPCollisionObject.h b/obj/bhkSPCollisionObject.h
index 5b8577d4..06983697 100644
--- a/obj/bhkSPCollisionObject.h
+++ b/obj/bhkSPCollisionObject.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKSPCOLLISIONOBJECT_H_
 #define _BHKSPCOLLISIONOBJECT_H_
 
+#include "NiCollisionObject.h"
+
 #include "gen/obj_defines.h"
-#include BHK_S_P_COLLISION_OBJECT_INCLUDE
 
 /*
  * bhkSPCollisionObject
diff --git a/obj/bhkSerializable.cpp b/obj/bhkSerializable.cpp
index 07e95c77..64b719f4 100644
--- a/obj/bhkSerializable.cpp
+++ b/obj/bhkSerializable.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkSerializable.h"
+#include "obj/bhkSerializable.h"
 
 //Definition of TYPE constant
 const Type bhkSerializable::TYPE("bhkSerializable", &BHK_SERIALIZABLE_PARENT::TYPE );
diff --git a/obj/bhkSerializable.h b/obj/bhkSerializable.h
index 2ee6ed89..0c4edf37 100644
--- a/obj/bhkSerializable.h
+++ b/obj/bhkSerializable.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKSERIALIZABLE_H_
 #define _BHKSERIALIZABLE_H_
 
+#include "bhkRefObject.h"
+
 #include "gen/obj_defines.h"
-#include BHK_SERIALIZABLE_INCLUDE
 
 /*
  * bhkSerializable
diff --git a/obj/bhkShape.cpp b/obj/bhkShape.cpp
index dddca213..37333ae1 100644
--- a/obj/bhkShape.cpp
+++ b/obj/bhkShape.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkShape.h"
+#include "obj/bhkShape.h"
 
 //Definition of TYPE constant
 const Type bhkShape::TYPE("bhkShape", &BHK_SHAPE_PARENT::TYPE );
diff --git a/obj/bhkShape.h b/obj/bhkShape.h
index 68b38926..31ce298e 100644
--- a/obj/bhkShape.h
+++ b/obj/bhkShape.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKSHAPE_H_
 #define _BHKSHAPE_H_
 
+#include "bhkSerializable.h"
+
 #include "gen/obj_defines.h"
-#include BHK_SHAPE_INCLUDE
 
 /*
  * bhkShape
diff --git a/obj/bhkSimpleShapePhantom.cpp b/obj/bhkSimpleShapePhantom.cpp
index 19e1a5c0..236a350b 100644
--- a/obj/bhkSimpleShapePhantom.cpp
+++ b/obj/bhkSimpleShapePhantom.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkSimpleShapePhantom.h"
+#include "obj/bhkSimpleShapePhantom.h"
 
 //Definition of TYPE constant
 const Type bhkSimpleShapePhantom::TYPE("bhkSimpleShapePhantom", &BHK_SIMPLE_SHAPE_PHANTOM_PARENT::TYPE );
diff --git a/obj/bhkSimpleShapePhantom.h b/obj/bhkSimpleShapePhantom.h
index e53d4a8a..9e89f260 100644
--- a/obj/bhkSimpleShapePhantom.h
+++ b/obj/bhkSimpleShapePhantom.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKSIMPLESHAPEPHANTOM_H_
 #define _BHKSIMPLESHAPEPHANTOM_H_
 
+#include "bhkEntity.h"
+
 #include "gen/obj_defines.h"
-#include BHK_SIMPLE_SHAPE_PHANTOM_INCLUDE
 
 /*
  * bhkSimpleShapePhantom
diff --git a/obj/bhkSphereRepShape.cpp b/obj/bhkSphereRepShape.cpp
index cb943204..4e92f3e7 100644
--- a/obj/bhkSphereRepShape.cpp
+++ b/obj/bhkSphereRepShape.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkSphereRepShape.h"
+#include "obj/bhkSphereRepShape.h"
 
 //Definition of TYPE constant
 const Type bhkSphereRepShape::TYPE("bhkSphereRepShape", &BHK_SPHERE_REP_SHAPE_PARENT::TYPE );
diff --git a/obj/bhkSphereRepShape.h b/obj/bhkSphereRepShape.h
index 645a360c..7d9d7cca 100644
--- a/obj/bhkSphereRepShape.h
+++ b/obj/bhkSphereRepShape.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKSPHEREREPSHAPE_H_
 #define _BHKSPHEREREPSHAPE_H_
 
+#include "bhkShape.h"
+
 #include "gen/obj_defines.h"
-#include BHK_SPHERE_REP_SHAPE_INCLUDE
 
 /*
  * bhkSphereRepShape
diff --git a/obj/bhkSphereShape.cpp b/obj/bhkSphereShape.cpp
index b2b678af..71bed084 100644
--- a/obj/bhkSphereShape.cpp
+++ b/obj/bhkSphereShape.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkSphereShape.h"
+#include "obj/bhkSphereShape.h"
 
 //Definition of TYPE constant
 const Type bhkSphereShape::TYPE("bhkSphereShape", &BHK_SPHERE_SHAPE_PARENT::TYPE );
diff --git a/obj/bhkSphereShape.h b/obj/bhkSphereShape.h
index 605b3299..72c6e302 100644
--- a/obj/bhkSphereShape.h
+++ b/obj/bhkSphereShape.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKSPHERESHAPE_H_
 #define _BHKSPHERESHAPE_H_
 
+#include "bhkConvexShape.h"
+
 #include "gen/obj_defines.h"
-#include BHK_SPHERE_SHAPE_INCLUDE
 
 /*
  * bhkSphereShape
diff --git a/obj/bhkStiffSpringConstraint.cpp b/obj/bhkStiffSpringConstraint.cpp
index fdcd3dcd..9124feb5 100644
--- a/obj/bhkStiffSpringConstraint.cpp
+++ b/obj/bhkStiffSpringConstraint.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkStiffSpringConstraint.h"
+#include "obj/bhkStiffSpringConstraint.h"
 
 //Definition of TYPE constant
 const Type bhkStiffSpringConstraint::TYPE("bhkStiffSpringConstraint", &BHK_STIFF_SPRING_CONSTRAINT_PARENT::TYPE );
diff --git a/obj/bhkStiffSpringConstraint.h b/obj/bhkStiffSpringConstraint.h
index 980dfc22..0dd83dfd 100644
--- a/obj/bhkStiffSpringConstraint.h
+++ b/obj/bhkStiffSpringConstraint.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKSTIFFSPRINGCONSTRAINT_H_
 #define _BHKSTIFFSPRINGCONSTRAINT_H_
 
+#include "AbhkConstraint.h"
+
 #include "gen/obj_defines.h"
-#include BHK_STIFF_SPRING_CONSTRAINT_INCLUDE
 
 /*
  * bhkStiffSpringConstraint
diff --git a/obj/bhkTransformShape.cpp b/obj/bhkTransformShape.cpp
index d7dea440..a8fa5371 100644
--- a/obj/bhkTransformShape.cpp
+++ b/obj/bhkTransformShape.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkTransformShape.h"
+#include "obj/bhkTransformShape.h"
 
 //Definition of TYPE constant
 const Type bhkTransformShape::TYPE("bhkTransformShape", &BHK_TRANSFORM_SHAPE_PARENT::TYPE );
diff --git a/obj/bhkTransformShape.h b/obj/bhkTransformShape.h
index 4374afa1..094b2bd5 100644
--- a/obj/bhkTransformShape.h
+++ b/obj/bhkTransformShape.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKTRANSFORMSHAPE_H_
 #define _BHKTRANSFORMSHAPE_H_
 
+#include "bhkEntity.h"
+
 #include "gen/obj_defines.h"
-#include BHK_TRANSFORM_SHAPE_INCLUDE
 
 /*
  * bhkTransformShape
diff --git a/obj/bhkWorldObject.cpp b/obj/bhkWorldObject.cpp
index b5cce9d0..2b05653b 100644
--- a/obj/bhkWorldObject.cpp
+++ b/obj/bhkWorldObject.cpp
@@ -1,7 +1,7 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "bhkWorldObject.h"
+#include "obj/bhkWorldObject.h"
 
 //Definition of TYPE constant
 const Type bhkWorldObject::TYPE("bhkWorldObject", &BHK_WORLD_OBJECT_PARENT::TYPE );
diff --git a/obj/bhkWorldObject.h b/obj/bhkWorldObject.h
index 54c4aaf4..6f89ffa0 100644
--- a/obj/bhkWorldObject.h
+++ b/obj/bhkWorldObject.h
@@ -4,8 +4,9 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _BHKWORLDOBJECT_H_
 #define _BHKWORLDOBJECT_H_
 
+#include "bhkShape.h"
+
 #include "gen/obj_defines.h"
-#include BHK_WORLD_OBJECT_INCLUDE
 
 /*
  * bhkWorldObject
diff --git a/obj/hkPackedNiTriStripsData.cpp b/obj/hkPackedNiTriStripsData.cpp
index 381e2424..17cc12d9 100644
--- a/obj/hkPackedNiTriStripsData.cpp
+++ b/obj/hkPackedNiTriStripsData.cpp
@@ -1,7 +1,8 @@
 /* Copyright (c) 2006, NIF File Format Library and Tools
 All rights reserved.  Please see niflib.h for licence. */
 
-#include "hkPackedNiTriStripsData.h"
+#include "obj/hkPackedNiTriStripsData.h"
+#include "gen/hkTriangle.h"
 
 //Definition of TYPE constant
 const Type hkPackedNiTriStripsData::TYPE("hkPackedNiTriStripsData", &HK_PACKED_NI_TRI_STRIPS_DATA_PARENT::TYPE );
diff --git a/obj/hkPackedNiTriStripsData.h b/obj/hkPackedNiTriStripsData.h
index 15648b48..412ed257 100644
--- a/obj/hkPackedNiTriStripsData.h
+++ b/obj/hkPackedNiTriStripsData.h
@@ -4,8 +4,10 @@ All rights reserved.  Please see niflib.h for licence. */
 #ifndef _HKPACKEDNITRISTRIPSDATA_H_
 #define _HKPACKEDNITRISTRIPSDATA_H_
 
+#include "AbhkShapeCollection.h"
+#include "gen/hkTriangle.h"
+
 #include "gen/obj_defines.h"
-#include HK_PACKED_NI_TRI_STRIPS_DATA_INCLUDE
 
 /*
  * hkPackedNiTriStripsData
-- 
GitLab