Preheat oven to 350°F and grease a 9x13-inch baking dish.
Boil potatoes in salted water until tender, about 15 minutes, then drain and mash with 1/4 cup butter, 1/2 cup milk, salt, and pepper. Set aside.
Cook macaroni according to package directions until al dente, drain and set aside.
In a large skillet, brown ground beef with onion and garlic over medium-high heat, breaking up meat as it cooks, about 8 minutes. Drain excess fat.
In a medium saucepan, melt remaining 1/4 cup butter, whisk in flour and cook 1 minute, then gradually add 3 cups milk, whisking constantly until thickened, about 5 minutes.
Stir 2 cups cheese into the sauce until melted, then combine with cooked macaroni and mix well.
Spread mac and cheese in prepared baking dish, top with seasoned ground beef, then spread mashed potatoes evenly over the top.
Sprinkle with remaining 1 cup cheese and paprika, then bake uncovered for 30 minutes until golden and bubbly.