A couple of things i'd change:
1) Use SHA 256 throughout. The cryptography is only as strong as the weakest link, so I don't see a point in using a mix of RIPMED and SHA, now your venerable to exploits in two algorithms.
2) Implement changing hash functions as a part of the protocol e.g. each block would include a flag identifying what it was hashed with. Clients should have support for many hash functions, if a one is shown to be weak it can be phased out.
3) Make command uint8 - char[12] wastes 11 bytes every message.
4) Separate Address messages for ipV4 and ipv6. clients that support ipv6 can specifically request ipv6 addresses. No point in wasting 12 bytes for every ipv4 address.
5) Remove coinbase. Use the previous block hash and timestamp as the entropy for the coinbase transaction.
4) Version based on protocol changes, not any particular client.
5) Remove sequence from TxIn
6) No alerts (deprecated already)
7) PING should require another PING response.
Make transaction scripts optional, requiring extra fees. The majority of transactions would use hard coded signing methods.
9) Block rewards decrease to a minimum block reward of ~1 BTC, meaning no 21 million limit.