Great job on this list here. I have a few things that you might like to add.
First, a note on what you said about TextMsg. The first byte can be 1 through 4. It's not a player's entity index or anything like that. It's basically the same as client_print in AMX/X. It is actually the destination of the text.
3: Chat area
New message information now...
coord, coord, coord, byte
1: X, 2: Y, 3: Z, 4: Bomb planted?
The first three arguments are the origin of the dropped bomb. The last argument is set to 1 if the bomb has been planted. It is 0 if the bomb was dropped due to voluntary dropping or death. Setting the last argument 1, will also trigger the round timer to hide. It also will show the dropped bomb on the Terrorist team's radar in the location specified by the first three arguments.
This message just tells the game that the bomb has been picked up. It will cause the dropped bomb to disappear from the Terrorist team's radar.
Shows the round timer again if it has been hidden.
string, byte, byte, byte, byte, byte, byte, byte, byte
1: Weapon name, 2: Ammo1 ID, 3: Ammo1 Max, 4: Ammo2 ID, 5: Ammo2 Max, 6: Bucket, 7: Bucket Position, 8: Weapon ID, 9: Flags
This message is sent before the map is fully loaded to determine the location of weapons on the player's HUD. This can potentially be used to change the positions of weapons and put them in different slots. The knife seems to have most problems with this however. Arguments 2 and 3 are -1 if the weapon is the knife. Arguments 4 and 5 are -1 in CS and CZ, but normally they would not be if a weapon had some sort of secondary ammo. Argument 6 can be 0-4 which correspond to the 1-5 horizontal weapon slots on the HUD. Argument 7 is the vertical weapon slot which is only noticable when a player has multiple weapons in a horizontal slot. These numbers start at 1 instead of 0, unlike argument 6. Argument 8 corresponds to a weapon's CSW_ constant.