Just to give you some history ...
When the client was first written it just supported the 16 "standard" ANSI colours (eg. red, dark red, etc.).
Pretty early on the ability to customize those was added, by using a palette. That is, instead of storing "red" I stored "this is intended to be red". You could then change what was actually displayed by configuring the "ANSI colours" configuration page.
And indeed in early versions I chose a gray background rather than black because I preferred it. However I soon got complaints that the default "wasn't standard", so I changed it to accurately reflect standard ANSI colours (you could of course change it back).
However after a while things got muddied. For one thing, MXP allowed colours to be expressed as "#F4A460", so it was possible to use thousands of colours (thus making a palette less useful). Also it then supported the "256-colour ANSI" sequences, which allowed for more colour shades.
You can use the MapColour script function to change any colour to any other colour, on-the-fly, at display time:
There are still issues. For example sending an "ANSI reset" usually sets the background back to black. However some MUDs rely on "reset" and "black" to be different things. For example, if you have black text on a blue background. If you map black to white then the effect is different to what is intended (and possibly unreadable).
With judicious use of the ANSI colour configuration, and MapColour, you can probably force the output to be pretty-much what you want, but it might be some work. It would also depend on how much colour information the MUD sends down. Some send more than others.