diff --git a/nif.xml b/nif.xml
index 34bb87e2cb86f38fdecba7816a7892831133f7e4..790551f1e042bfc006147940d026008003a59ac1 100644
--- a/nif.xml
+++ b/nif.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE niftoolsxml>
-<niftoolsxml version="0.8.2.0">
+<niftoolsxml version="0.8.3.0">
     <!--These are the version numbers marked as supported by NifSkope.
         The num argument is the numeric representation created by storing
         each part of the version in a byte.  For example, 4.0.0.2 is
@@ -1635,14 +1635,45 @@
         <add name="Material" type="HavokMaterial">The material of the subshape.</add>
     </compound>
 
+    <compound name="bhkPositionConstraintMotor">
+        <add name="Min Force" type="float" default="-1000000.0">Minimum motor force</add>
+        <add name="Max Force" type="float" default="1000000.0">Maximum motor force</add>
+        <add name="Tau" type="float" default="0.8">Relative stiffness</add>
+        <add name="Damping" type="float" default="1.0">Motor damping value</add>
+        <add name="Proportional Recovery Velocity" type="float" default="2.0">A factor of the current error to calculate the recovery velocity</add>
+        <add name="Constant Recovery Velocity" type="float" default="1.0">A constant velocity which is used to recover from errors</add>
+        <add name="Motor Enabled" type="bool" default="0">Is Motor enabled</add>
+    </compound>
+
+    <compound name="bhkVelocityConstraintMotor">
+        <add name="Min Force" type="float" default="-1000000.0">Minimum motor force</add>
+        <add name="Max Force" type="float" default="1000000.0">Maximum motor force</add>
+        <add name="Tau" type="float" default="0">Relative stiffness</add>
+        <add name="Target Velocity" type="float" default="0">Unknown</add>
+        <add name="Use Velocity Target" type="bool" default="0">Unknown</add>
+        <add name="Motor Enabled" type="bool" default="0">Is Motor enabled</add>
+    </compound>
+
+    <compound name="bhkSpringDamperConstraintMotor">
+        <add name="Min Force" type="float" default="-1000000.0">Minimum motor force</add>
+        <add name="Max Force" type="float" default="1000000.0">Maximum motor force</add>
+        <add name="Spring Constant" type="float" default="0">The spring constant in N/m</add>
+        <add name="Spring Damping" type="float" default="0">The spring damping in Nsec/m</add>       
+        <add name="Motor Enabled" type="bool" default="0">Is Motor enabled</add>
+    </compound>
+    
+    <enum name="MotorType" storage="byte">
+        <option value="0" name="MOTOR_NONE" />
+        <option value="1" name="MOTOR_POSITION" />
+        <option value="2" name="MOTOR_VELOCITY" />
+        <option value="3" name="MOTOR_SPRING" />
+    </enum>
+
     <compound name="MotorDescriptor">
-        <add name="Unknown Float 1" type="float" default="-1000000.0">Unknown</add>
-        <add name="Unknown Float 2" type="float" default="1000000.0">Unknown</add>
-        <add name="Unknown Float 3" type="float" default="0.8">Unknown</add>
-        <add name="Unknown Float 4" type="float" default="1.0">Unknown</add>
-        <add name="Unknown Float 5" type="float" default="2.0">Unknown</add>
-        <add name="Unknown Float 6" type="float" default="1.0">Unknown</add>
-        <add name="Unknown Byte 1"  type="byte"  default="0">Unknown</add>
+        <add name="Type" type="MotorType" default="MOTOR_NONE" />
+        <add name="Position Motor" type="bhkPositionConstraintMotor" cond="Type == 1" />
+        <add name="Velocity Motor" type="bhkVelocityConstraintMotor" cond="Type == 2" />
+        <add name="Spring Damper Motor" type="bhkSpringDamperConstraintMotor" cond="Type == 3" />
     </compound>
 
     <compound name="RagdollDescriptor">
@@ -1680,8 +1711,7 @@
         <add name="Twist Max Angle" type="float">Maximum angle the object can rotate around Twist A, relative to Plane A.</add>
         <add name="Max Friction" type="float">Maximum friction, typically 0 or 10. In Fallout 3, typically 100.</add>
 
-        <add name="Enable Motor" type="bool" ver1="20.2.0.7" vercond="User Version 2 &gt; 16">Unknown</add>
-        <add name="Motor" type="MotorDescriptor" cond="Enable Motor" ver1="20.2.0.7" vercond="User Version 2 &gt; 16" />
+        <add name="Motor" type="MotorDescriptor" ver1="20.2.0.7" vercond="User Version 2 &gt; 16" />
     </compound>
 
     <compound name="LimitedHingeDescriptor">
@@ -1719,8 +1749,7 @@
         <add name="Max Angle" type="float">Maximum rotation angle.</add>
         <add name="Max Friction" type="float">Maximum friction, typically either 0 or 10. In Fallout 3, typically 100.</add>
 
-        <add name="Enable Motor" type="bool" ver1="20.2.0.7" vercond="User Version 2 &gt; 16">Unknown</add>
-        <add name="Motor" type="MotorDescriptor" cond="Enable Motor" ver1="20.2.0.7" vercond="User Version 2 &gt; 16" />
+        <add name="Motor" type="MotorDescriptor" ver1="20.2.0.7" vercond="User Version 2 &gt; 16" />
     </compound>
 
     <compound name="HingeDescriptor">
@@ -1776,7 +1805,7 @@
         <add name="Max Distance" type="float">Describe the max distance the object is able to travel.</add>
         <add name="Friction" type="float" >Friction.</add>
 
-        <add name="Unknown Byte 1" type="byte" ver1="20.2.0.7" default="0">Unknown. Do not set this to anything over 0 as it will crash the game.</add>
+        <add name="Motor" type="MotorDescriptor" ver1="20.2.0.7" vercond="User Version 2 &gt; 16" />
     </compound>
 
     <compound name="StiffSpringDescriptor">