Heat oil in a large frypan over medium heat. Saute onions until soft. Stir in beef mince and cook until evenly brown. Drain excess fat. Season with Italian herbs, rosemary, garlic salt, salt and pepper. Stir in tomatoes, tomato paste and water. Simmer 1 hour, or until sauce has thickened.
Melt butter in a saucepan over medium heat. Cook onion until soft and translucent. Stir in flour until smooth. Stir in Parmesan cheese then milk. Cook, stirring, until thick. Allow to cool then stir in egg. (Sauce will be very thick.)
Preheat oven to 180 degrees C. Bring a large pot of lightly salted water to a boil. Add pasta and cook for 8 to 10 minutes or until al dente; drain. Lightly grease a 20x30cm baking dish.
In prepared baking dish, place a layer of pasta, meat sauce, cheese sauce, ricotta and mozzarella. Repeat layers. Build to your desired thickness, or make another smaller pan for freezing.
Bake in preheated oven for 1 hour. Let cool 15 minutes before serving.