"My dog sleeps on top of my shirt."
Translation:Mi perro duerme sobre mi camisa.
Yes, I agree, you could say "on". But the word "on" is generic. If you said "The dog is on the sofa"="El perro está en el sofá", it could be touching the sofa in many ways: under the sofa, on the side of the sofa, behind the sofa, etc. There are more specific ways to describe exactly where the dog is: encima/sobre de=on top of.
"On" is also used for the word "in", so i think people would get confused if you used it this way: "The dog is in the sofa". That might be why it's incorrect.
I might be wrong, but i've learned that "mía" and "mío" are both translated to the word "mine" in English, so you usually use them at the end of a sentence: "The shirt is mine"="La camisa es mía".
To answer your question, yes there is only one form of "mi" for masculine and feminine nouns. "Mi" is translated to "my" in English, and it does change to "mis" when the noun is plural :)