(Excuse my ignorance)
With a custom client wouldn't that remove the need for OP'S (as in we could completely change the op's to whatever we want such as 0x0A to 1x338)?
Yes sure, you can modify the packets in any way you want, from opcode to content. I have already done that with quite a few, since there isn't really any good consistency in nexon's packets. Just to give an example, they have way too many different ways to send data in a loop, sometimes they will send the total size first and then the loop, sometimes they send an additional byte with every item that signifies if it's the end of the loop and so on.
There are also alot of packets that are just not needed, like for example when logging in, they send the character stats again altough the client already knows the stats because it needs to display them in the char selection.