Best way to get loudness is through saturation in small amounts.
Pretty much every sound in my tracks have a saturator with soft clipping on which is acting as a limiter. I group all of my tracks into synths, basses, sub, drums etc. As well as saturating each track individually, I'll have one on the group channel too and feed that into a saturator a few db, just to squash things down a little. (I'll usually do this step last and fine tune it when I'm doing my final mixdown. I end up turning things up in the group that I feel aren't loud enough and they're being fed into the saturator too hard).
I'll also get my kick and snare sitting at 0db using saturation. I tried this for the first time with my last few tracks and it made mastering really easy for me. I'd make sure that the saturator was trimming a few db off my kick and snare without affecting the sound.
The more 'sausaged' your mix is before you it reaches your mastering chain, the more loudness you can get from it. You have to be really careful with saturation cause it's easy for your mix to sound completely flat and squashed but when it's used in small amounts, it's really helpful for getting loudness.