I've found how it determines where to place enemy graphics in VRAM.
(Very simplified description):
1. It takes the enemy parameter and adds one to it.
2. The new number is ANDed with 0xFE (so if the old number was even, it returns to its previous value)
3. The result is multiplied by 0x10.
4. If the enemy parameter was originally even, then 0x8 will be added.
The resulting number placed at D00,x is eventually ANDed with 0x1FF, multiplied by 0x10, and used as the VRAM address.
Here's an example with Gato:
$C0/4799 A6 C7 LDX $C7 [$00:01C7] A:AC80 X:0000 Y:0173 P:envMxdIzC
$C0/479B BF 01 20 7F LDA $7F2001,x[$7F:21E1] A:AC80 X:01E0 Y:0173 P:envMxdIzC //The enemy parameter
$C0/479F 85 E1 STA $E1 [$00:01E1] A:AC86 X:01E0 Y:0173 P:eNvMxdIzC
$C0/47A1 29 7F AND #$7F A:AC86 X:01E0 Y:0173 P:eNvMxdIzC
$C0/47A3 1A INC A A:AC06 X:01E0 Y:0173 P:envMxdIzC
$C0/47A4 E2 10 SEP #$10 A:AC07 X:01E0 Y:0173 P:envMxdIzC
$C0/47A6 AA TAX A:AC07 X:00E0 Y:0073 P:envMXdIzC
$C0/47A7 A5 6D LDA $6D [$00:016D] A:AC07 X:0007 Y:0073 P:envMXdIzC
$C0/47A9 9D 88 0B STA $0B88,x[$00:0B8F] A:AC10 X:0007 Y:0073 P:envMXdIzC
$C0/47AC 8A TXA A:AC10 X:0007 Y:0073 P:envMXdIzC
$C0/47AD C2 20 REP #$20 A:AC07 X:0007 Y:0073 P:envMXdIzC
$C0/47AF 29 FE 00 AND #$00FE A:AC07 X:0007 Y:0073 P:envmXdIzC
$C0/47B2 0A ASL A A:0006 X:0007 Y:0073 P:envmXdIzC
$C0/47B3 0A ASL A A:000C X:0007 Y:0073 P:envmXdIzc
$C0/47B4 0A ASL A A:0018 X:0007 Y:0073 P:envmXdIzc
$C0/47B5 0A ASL A A:0030 X:0007 Y:0073 P:envmXdIzc
$C0/47B6 85 D9 STA $D9 [$00:01D9] A:0060 X:0007 Y:0073 P:envmXdIzc
$C0/47B8 8A TXA A:0060 X:0007 Y:0073 P:envmXdIzc
$C0/47B9 29 01 00 AND #$0001 A:0007 X:0007 Y:0073 P:envmXdIzc
$C0/47BC 0A ASL A A:0001 X:0007 Y:0073 P:envmXdIzc
$C0/47BD 0A ASL A A:0002 X:0007 Y:0073 P:envmXdIzc
$C0/47BE 0A ASL A A:0004 X:0007 Y:0073 P:envmXdIzc
$C0/47BF 18 CLC A:0008 X:0007 Y:0073 P:envmXdIzc
$C0/47C0 65 D9 ADC $D9 [$00:01D9] A:0008 X:0007 Y:0073 P:envmXdIzc
$C0/47C2 86 D9 STX $D9 [$00:01D9] A:0068 X:0007 Y:0073 P:envmXdIzc
$C0/47C4 A6 6D LDX $6D [$00:016D] A:0068 X:0007 Y:0073 P:envmXdIzc
$C0/47C6 9D 00 0D STA $0D00,x[$00:0D10] A:0068 X:0010 Y:0073 P:envmXdIzc
Edit-I need some time to determine how it places the graphics in different spots because of party members.
Edit 2: It probably doesn't. I got confused because the VRAM addresses weren't the same as the place the graphics appeared.