The melody line is a bit reminiscent of
Squeeze, which is good in my book.
I like the reference at the end - nice.
Good song, I enjoyed it!
OK, on to criticisms you can feel free to ignore.

Since this is sort of emulating classic rock, I'd suggest comparing the mix to some classic rock songs.
For fun, I brought up a couple of Rolling Stones songs on YouTube -
Sympathy for the Devil and
Baby Please Don't Go. The first thing I noticed was that the mix wasn't that bright or piercing.
The next thing I noticed was that at any one point, there was only one single point of attention. On
Sympathy for the Devil, it starts with the congas. Then the guitar comes in with it's part, and although the congas keep going, it feels like a call and response between the guitar/piano and the congas. When the vocal comes in, the lead guitar backs out, only coming in at the end of phrases. And so on.
The other thing I noticed about the Rolling Stones songs was that you can hear that different instruments are in different frequencies, so they don't step on each other. For example, when the guitar plays, it's in a frequency range that keeps it from competing with the vocals. This is partly done by the people playing, who are aware of the other instruments, and make choices appropriately. In addition, the mixer is probably putting high/low pass cuts and EQ to keep things in their place.
Listen to 3:10 in your song. The piano is bright and in the upper register - but so in the piano. You've panned them to different speakers, but they're still stepping on each other.
I realize that you're going for a rock-and-roll cacophony here, but contrast that with the piano in
Sympathy for the Devil, which is dull and stays in the mid/low register.
So my main suggestion is this: figure out at every point in time what
one part is supposed to have focus. Go through that section, and make sure that nothing is competing with it. The simplest thing to do is just remove something that's in the same frequency.
If you
have to keep it in, cut it down to the absolute essential part, playing where the other part isn't.
If you can't reduce the part, use EQ to keep it in a narrow frequency range so it stays away from any instrument it might be fighting with.
You can also reduce the volume and pan to different speakers, but arranging the sound so it doesn't compete in the first place is the best route.
Finally, if you have a particular mix sound in mind, bring up the song you're aiming for, so you can compare you mix with that one.
Hopefully
something there is useful.
