The display is fine, it's the data you're sending that is broken. The server wouldn't respond with MODE unknown command, so you are actually sending "ODE ..." to the server. What you see in your status is actually the correct display. Type /debug @debug and watch your debug window to confirm.
As for why the first letter of your commands are getting stripped-- a lot of things can cause that in addition to a bug-- namely, a script could do that. In fact, that seems to be the likely case here.
As for joining channels, the server will block your commands until /LIST completes. The reason joining a channel sometimes has a delay is because mIRC is waiting for /LIST to complete before it can issue /JOIN. Or rather, it might issue it immediately, but the server won't respond until the LIST command finishes.
- argv on EFnet #mIRC
- "Life is a pointer to an integer without a cast"