1.8 Protocol Update

Do not merge yet!
It's only for other coders to review the current code.
`BlockType << 4` is an int resulting in a warning about narrowing. Can you add a cast to the shift