In my experience, headphones always yield the best results, and surprisingly it doesn't matter if I use the stock earbuds from my phone or a nice set of AKG over-ear headphones. It's not a matter of absolute sound quality, just the fact that you cut out room interactions and get the sound straight to your ears makes a big difference.
MP3 has some built-in flaws that no encoder can completely cover up, short sharp sounds like castanets really expose the pre-echo, harpsichord shows similar issues. It also has a tendency to make cymbals sound "washy" or "underwater", which all lossy codecs do to some degree, but MP3 is especially bad.
Still, at 192kbps I have to really focus to hear it in normal listening, but it's more or less always there even at 320kbps in problem tracks, if I really focus in on short sections. It just sounds subtly "off". But I hope no one actually listens to music like that, in short repeated sub-1 second sections to narrow in on a specific castanet snap ;-)
As for more modern codecs like Opus and AAC, it's generally completely transparent for me at 128kbps, and that's with a bit of playing it safe, I'm pretty sure I could drop Opus down to 96kbps. Modern codecs are really impressive.
I keep my music library in FLAC, both because I know it's CD quality and because it's an archive. I want to be able to convert the tracks to any new codec that may come along, if I need to.
My library is 280GB currently, and storage is cheap :-)