If it were me? I would say that's illegal to ask and I would not answer.
But that's because I don't have much to lose and don't let people cross lines they shouldn't cross.
(1) Should I disclose salary / bonus information? If not, any smart ways to address the question?
Given you're coming from MBB and have a high salary + bonus (%), I'm not sure why you wouldn't give it. If you don't want to, you can say that the firm you're work for doesn't allow for it, or you don't feel comfortable disclosing, OR you can state your salary expectations for the new role.
(2) On the bonus part, is it sensible to say the exact figure is “confidential”? Typically after I said bonus is normally 20%, the hiring manager would further ask what was the exact figure this year.
Sure. And yes you can say the %. If they push, you can push back or answer.
These are all your choices here. We don't know you and your background well enough and there are pros and cons with each approach. Ultimately, it's about what you feel comfortable with. You don't seem to feel comfortable answering, so you shouldn't, as long as you understand it *may* risk the offer.
There's also right ways and wrong ways to verbalize this, but there are a lot of different scenarios/questions that need to be played out here…just remember it's possible to be firm, but polite. It's possible to not give the answer while also not lying. It's possible to use political language that neither offends nor reveals.