Also, there was a breaking issue with the computeParameters() call that the test did not account for. Once you reached packet ID 128, the encryption keys were all off. This was due to the packet ID byte shifting: it worked for the first 127 bytes. We can thank Java's lack of unsigned primitives, and a little bit of my own ignorance for that issue.
At this point, I believe all we need now are the clientQuery commands. Several events must be added, and the responding commands must be typed out as well. More to come. Home stretch.