Cook macaroni according to package directions. Meanwhile, in a large skillet, cook beef and onion over medium heat until meat is no longer pink. Add garlic; cook 1 minute longer. Drain. Stir in the tomato sauce, 1/2 teaspoon salt, oregano, pepper and, if desired, cinnamon; heat through.
Drain macaroni; place half of macaroni in a greased 9-in. square baking pan. Sprinkle with 1/4 cup cheese. Layer with meat mixture and remaining macaroni. Set aside.
Preheat oven to 350°. In a small saucepan, melt butter; stir in flour and remaining salt until smooth. Gradually add milk. Bring to a boil; cook and stir 2 minutes or until thickened.
Remove from the heat. Stir a small amount of the hot mixture into egg; return all to the pan, stirring constantly. Bring to a gentle boil; cook and stir 2 minutes. Remove from heat; stir in remaining cheese. Pour sauce over macaroni.
Bake, uncovered, 30-35 minutes or until golden brown. Let stand 10 minutes before serving.