Storm - I think I read that the mode (descend, approach, etc) is a separate code sent by the Mode-S. So it's not dependant on altitude, or even attitude, and doesn't relate at all to the ADS-B position signals. That's how it can tell the difference between, say, "levelled" and "cruise". Maybe it comes from the Flight Management System.
I know this isn't an answer to your question, but perhaps it helps!
Rod