Right, here is my attempt to explain PLDs and EMDs.
Both PLDs and EMDs have at the beginning a pointer which points to a list of pointers
at the end of the file. This pointer must match the beginning of the pointer list at the
end of the PLD/EMD.
Red is the Pointer, read from right to leftGreen is the Animation Play/number of frames index. Yellow is the Model load setup and
Animation tranformations (I have not solved how these work yet). Blue is the model
data. Purple is the TIM file.

The selected area is the starting points for each of the body parts, which
I call the skeleton. When swapping around animations, you'll need to copy
this from the original file to the replacements animations. This can only
be done with "Human" Characters i.e. Kendo, Leon, Zombie.
However an EMD does not have the TIM pointer, and has some more pointers
inbetween the Animation and model data. I have not looked into this but I
do not think it is enemy AI since I have copied a NPC to a zombie without
correcting the animations and the NPC tries to act like the zombie.

To turn an NPC to a PC:
- you would copy out everything before the PCs model Data
- Delete everything before the NPCs model Data
- paste in the PCs data copied
- go to the end of the file, remove the NPCs pointer list
- copy in the NPCs Tim image, make a note of where the TIM image starts
- Copy to the end of the NPCs file the PCs pointer list, make a note where
the pointer list starts. - Correct the NPCs TIM pointer location
- Go to the start of the file and readjust the start pointer
- Save as a temp name
- Go to the offset (yellow) for the animations (and for a Human/Zombie) delete
the amount highlighted in 2nd picture - Open the original EMD file again
- Go to the offset of the yellow pointer for the original EMD
- Select the same amount of data and copy it to the EMD you are turning into a PC
- Save your PC EmD and play
As for turning a PC into a NPC or swapping around NPCs, all you have to worry about
are:
- You would delete everything before the Model Data
- Copy everything from before the model data of the NPC you are going to replace
- Paste it to the other model
- Delete the models Pointer list at the end of the file
- Copy across the Pointer list from the npc you are going to replace.
- Get the offset for the pointer list
- Correct the pointer at the beginning of the file
- Go to the offset (yellow) for the animations (and for a Human/Zombie) delete
the amount highlighted in 2nd picture - Open the original EMD file again
- Go to the offset of the yellow pointer for the original EMD
- Select the same amount of data and copy it to the EMD you are creating as a replacement.
- Save the EMD and copy/rename the TIM file to match.
As long as the pointers are all correct the files should work though some NPCs
have more body parts than others or have them in a different order, for example
Swapping Annette for Marvin, Marvin does not hold a gun but part of his zombie arm.
Sometimes models will crash if they do not have the correct number of body parts.
I hope that is easier to understand. I can't seem to write it any simpler.
RE1 has the pointer list at the end of file but no beginning pointer pointing to this.
The first two pointers for RE1 are 00 00 00 00 and 00 00 00 00, the following two
are the Model Data and TIM offset.