This might be subjective, but I'd bet most people would agree that the syntax you just showed is uglier than the current system.
Exactly! Stick to 0-99 (99 being reverse as argv0 mentioned). It's much cleaner *AND* it works for both public and local messages without breaking anything as any major client I've seen automatically uses a valid color if a number over 15 is used (mIRC uses the default text color). So it helps everyone and doesn't break a thing. Then, as was mentioned, local colors can extend beyond that because it's only local and any changes don't have to be handled by other clients. And, even for local, we want to keep is short and simple.
HTML is absolutely NOT the way to go. You're right MeStinkBAD... yours isn't as ugly as the current method... it is MUCH uglier. It takes much more time to wade through all of the tags to see what the real text is (sometimes causing you to miss text because you miss the end of the tag) than it does to look around control codes. The fact that you can't get anyone to agree with you should tell you something.