Boil the macaroni in water and do not oil in the boiling water because we need the spaghetti to tangle; drain and set aside.
Fry the chopped onion deeply in 1 tbs vegetable oil till it's brown, add the ground meat, till it's well done, season with salt and pepper then add the tbs of tomato paste; set aside.
To make the bechamel:
Pour a considerable amount of oil/butter/margarine heat.
Add the flour and mix with oil, stir till golden.
Add one cup of the milk and water at a time, stirring constantly, so that the flour won't form lumps and the cube of broth. Keep stirring until the mixture thickens. Beat the egg and add to the mixture stirring constantly. When thickened enough, season and stir; set aside.
Beat cream cheese with a tablespoon of water then add to the spaghetti and stir.
In a Pyrex or Tefal dish, batter the dish with butter. In the base sprinkle 2 tbs of bechamel and one tbs of breadcrumbs.
Put half the amount of pasta followed with the full amount of meat, then top with the rest of the pasta, layer with the whole amount of bechamel (it's important that this should be a big thick layer).
Sprinkle with the mozzarella and cheddar mixture and bread crumbs.
Put in medium heat oven till the tomato sauce from meat reaches the bottom spaghetti layer and cheese melts and becomes golden. This should take from from 30-40 minutes.