yep it's OCD
The PID generation method for gen 5 is a little unconventional, but it's no longer an IVPID relation. It's an NPID relation now. Since "initial seeds" are 8 bytes instead of 4, only the upper half of the seed is taken for PID calculation. All it is is XOR'd with some constant depending on the Pokemon.
Nature is generated in the previous call in the RNG. I'm not 100% sure with a formula for each because there are many different methods (Egg, Wondercard, Wild, Zoroark, Reshiram, Legends) in which the nature is most likely generated on a different call (Eggs and wondercards are different). The RNG is still getting ironed out