Honestly, before even thinking of mastering, make a good mix. As I've been said countless times, garbage-in/garbage-out - you can't give a good master without a good mix first. Mastering isn't the magical solution that will solve all problems you will encounter in your mixing process. Start by fixing the mix.
I find out that all my guitar tones are pretty "thin", half of guitar tones comes from proper bass processing that will support it. I don't know how you work, but I suggest starting from scratch and work out each single instrument one at a time. Don't try to integrate something else in your mix before the thing you're mixing in sounds good. And only go back on what you've done for "carving in" a place in frequency range if you find out that the thing you just added is fighting with a previous addition.
For an example, I start with drums, then try to integrate guitars. I then add bass. Oops, bass frequencies are jumping all over the place? Probably fighting with bassdrum and/or guitars - go back and filter out/tame those bass frequencies that fight with the bass. Problem solved? Integrate next item.
This way of working should help keeping your mix clean, I guess.