SpawnShell::FillSpawnStruct needs to be updated. It reads the data in a specific order and is probably filling in the position data wrong.

This is where it reads in the position data:
Code:
   spawn->posData[0] = netStream.readUInt32NC();
   spawn->posData[1] = netStream.readUInt32NC();
   spawn->posData[2] = netStream.readUInt32NC();
   spawn->posData[3] = netStream.readUInt32NC();
   spawn->posData[4] = netStream.readUInt32NC();
And spawnStruct in everquest.h should be arranged in the right order as well -- it keeps it less confusing.

This part (from spawnStruct in everquest.h) is the position data that gets filled in in SpawnShell::FillSpawnStruct:
Code:
         union
         {
           struct
           {
             signed   padding0000:12;                // ***Placeholder
             signed   deltaHeading:10;               // change in heading
             signed   padding0005:10;                // ***Placeholder
             signed   z:19;                          // z coord
             signed   deltaZ:13;                     // change in z
             signed   deltaY:13;                     // change in y
             signed   y:19;                          // y coord
             signed   x:19;                          // x coord
             signed   deltaX:13;                     // change in x
             unsigned heading:12;                    // heading
             signed   animation:10;                  // animation
             signed   padding0006:10;                // ***Placeholder
           };
           int32_t posData[5];
         };