Ok, there are like... a billion posts about "why can't mIRC display multiple spaces" etc. This attempts to solve that problem by using binary variables. Basically, think of /braw as a binary variable version of /raw. Now the difference between /braw and a regular mIRC command is that /braw evaluates binary variables, meaning:
/braw PRIVMSG #chan : $+ &thedata

mIRC would evaluate &thedata to whatever is in that variable. Now, since we're interacting with the IRC server, this binary command can't function like regular binary commands. What I mean by this is, &thedata should only be evaluated up to the first $cr $lf or $null, thats just because of the way IRC works. The purpose of this isn't to be able to send binary data to the IRC server, it is to be able to send multiple spaces.

Now thats only part 1 of the fix. Part 2 involves something a bit different. For ALL aliases, events, identifiers, etc mIRC not only creates things like $1 $2, ... it creates &params. &params contains the parameters EXACTLY as they were passed.

And lastly another alias, /bdo. /bdo is a version of the mIRC parser that supports binary variables. For example:
/bdo echo -a &thedata
That would work just like calling /echo except &thedata is evaluated to its contents, again this should probably work like /braw with the evaluation. So how does this work exactly?

alias msg {
bdo msg &params
}

That for example would make /msg allow multiple spaces.

The idea isn't exactly the cleanest, maybe others have some suggestions on how to make it cleaner, but it has the potential to work.