Why can't we say mera?
Please, read the previously posted explanations more carefully; there is also the answer to the question you asked and why we cannot use the singular in this example.
Why is यह मेरे दादा है wrong?
because honorific plural is used here; like they are my grandfather
Also, why hain, not hai? It's singular, and we're not speaking to him, but is it still a formality?
This is a case of what's called the honorific plural. Words like दादा, माँ (mother), राष्ट्रपती (president), etc. generally take plural adjectives and verbs.