Sounds great to me, but you might have to settle for like $20,500 or something. That's still about $3500 cheaper than the old MSRP. Look into their fees and what have you, too, see what else they want on top of the car. Like, is that $20,799 before or after freight and PDI? Do they have a stupid $400 paperwork fee, or some crap like that? How else are they going to try and suck money out of you? What's the OTD price going to be after tax and all other applicable fees?
You may not have the option to shop elsewhere for this car which sort of limits your options, but don't be afraid to step away from the deal to think. You might even talk to other Mazda dealers in the area about the car you want if you think they can get stock from the dealer you are currently negotiating with, and see if they can give you a better overall deal.
Incidentally, get your price first then negotiate trade. If they cut you a good deal on trade they'll be less willing to move on the price of the car, or drop dealers fees, or throw in extras. If they won't give you fair trade on the car when they are so close to closing the deal I'd just do the whole "I can't sell my car for what you're offering, sorry" angle and walk. It's a buyers market right now, and they'll try and find a way to make you happy if you look like a serious buyer (which you must, at this point). Fair on your trade at a dealership is going to be KBB less about 15% - 20%, though. If they'll give you around that, I'd be happy with it.