Don't be too specific with butter & cheese! But make it all last till the last layer. The milk egg mixture I like to a bit be over the top of the macaroni so it won't dry out in the oven. Suspect this is a Southern thing, as won a few Northerners over with this who had never heard of such. If you see wet milk when baking, it hasn't cooked long enough. It should absorb the milk egg mixture. Prep time depends on you.
Preheat oven to 350 degrees F. In a dutch oven add water, to generously cover elbow macaroni once added. Add salt to taste, bring to boil. Gradually add macaroni keeping a steady boil. Either cook as long as directions on box says or do like me, and plump it up by letting cook 25 minutes. Trust me, seems everyone likes it plump when I make it. Once cooked, drain.
While macaroni is still hot, I like to use a chicken fryer, cast iron chicken fryer, but use what dish works for you and add a layer of the cooked macaroni. Then a layer of grated cheese, then pieces of butter scattered on top. Repeat at least 2 more times, ending with butter.
In a large glass or container suitable to you, mix the Milk, Egg, & Salt & Pepper. Pour this all over the top of the layers of mac/cheese/butter.
In your preheated 350 degrees F. bake until set. Check after 30 minutes but should be done after an hour. Once out of oven, cover loosely with aluminum foil if you are going to take to a dinner. In the cast iron it will remain hot enough to serve while everyone else is getting finishing touches done for the group effort dinner. People have actually fought over leftovers IF any leftovers with this recipe. I adapted the original recipe suitable to my taste and my family's taste.