It's built that way because it's the correct way to have a present modal verb (muss) with a present perfect infinitive (eingeschlafen sein).
Ich bin eingeschlafen translates to I have fallen asleep (present perfect tense). The auxiliary verb to form the perfect of einschlafen is sein, not haben. The infinitive of einschlafen in present perfect thus is eingeschlafen sein.
Müssen is the auxiliary verb to express epistemic modality ('from the circumstances it seems the only logical conclusion that I have fallen asleep'). The meaning is the same as of English must in must have fallen asleep. As every modal verb, it requires an infinitive as supplement by definition. This is where the present perfect infinitive from above comes into play.
The combination of auxiliary + present perfect infinitive is the sentence you already know:
Ich muss (modal auxiliary, finite) {eingeschlafen (past participle) sein (present perfect auxiliary, infinite)}present perfect infinitive.
Note that in English, due to the relatedness of both Germanic languages, it's exactly the same -- the modal auxiliary is finite, the perfect auxiliary is infinite as this third person example shows:
He must (finite) have (infinite, otherwise it would be has) fallen (perfect participle) asleep.
Must1 have2 fallen3a asleep becomes muss1 eingeschlafen3b sein2 (because German is a object-verb, not verb-object language).