Grease a 9x12 baking dish. Preheat oven to 375 degrees. Bring a large pot of water to a rolling bowl, season with salt.
Heat a large pot to a medium heat. Add butter. Once the butter melts, whisk in the flour. Cook for one minute. Take the pot off of the heat and slowly whisk in warm or hot milk making sure there are no lumps.
Return the pot to the heat and whisk in 1 1/2 teaspoons salt and nutmeg. Bring to a boil and reduce to a simmer. Continue to simmer until thickened, about 8 minutes. Once the mixture is thickend, remove from the heat and whisk in cheese. Season to taste with salt and pepper. Set aside.
While the bechemel is thickening, heat a large non-stick skillet to a medium heat. Add ground beef. Start to brown the beef, breaking it up with a wooden spoon. Once the beef is halfway done cooking, drain fat if necessary. Add onion, garlic, and remaining 1 1/2 teaspoons salt. Continue to cook the beef until it's browned all the way through and the onion is soft.
Mix in the the tomato paste and cinnamon. Cook for 1-2 minutes. Set aside.
When the meat sauce is almost done cooking, drop the pasta into the boiling water. Cook until it's just UNDER aldente. It should have a good bite to it. Drain.
Whisk the eggs into the bechemel sauce.
Add the noodles back to the pot you cooked them in. Toss with half of the bechemel and half of the meat mixture. Layer half of the noodles into the prepared casserole dish. Cover with remaining ground beef mixture. Layer the remaining noodles on top. Pour remaining bechemel sauce on top of the noodles.
Bake in the oven until lightly golden brown and bubbly, about 30 minutes. Let it rest for about 5-10 minutes before cutting into squares and serving.