Here is a fun Fun FUN Bug you can trigger yourself at home!

Run mocp with a nice long playlist.

Then try to run the following:
$(mocp --next && mocp --format "%song by %artist from %album")

What you will notice after third or fourth trial is that the strings requested `mocp --format` are still the old ones from the previous track while the new track already plays.
I noticed this today as I played around with my emacslisp package for mocp which interfaces with the cli commands provided by mocp.

Now if this isnt a FUN Bug to come across I dont know what else. :-)

Have FUN debugging this one !

Nah it's not so fun: being a client/server application, the OS and moc are free to send and process each recieved message whenever they want, thus in this case moc receives a request to display current track information whilst changing tracks (and therefore the track info will be the previous one).

If this is for a script you could always try the poor man's synchronize primitive:
> mocp --next && sleep 0.1 && mocp --format "%song by %artist from %album"