Combine grated cheddar and mozzarella and set aside.
Finely chop shallots.
Cut bacon into small slices and fry; remove from pan and place on a paper towel-lined plate.
Saute shallots in bacon grease.
In small saucepan, heat milk until near boiling. Turn off heat. Melt butter in heavy pan large enough to hold the pasta after it is cooked. When foam from butter recees, remove from heat, add flour and mix well. Return to medium-low heat and stirring occasionally, simmer for 2 to 3 minutes to cook, but not brown the flour. Gradually stir in hold milk. Raise heat to medium-high and continue stirring until mixture is smooth and thick - - about 5 minutes. Add Parmesan and Romano cheeses. Add shallots, half of the bacon and garlic. Whisk until smooth. Add Tabasco and white pepper and blend.
Cook rigatoni in boiling salted water about 4 minutes. (It will be underdone, but will finish cooking later). Thoroughly drain rigatoni and fold into the béchamel.
If cooking immediately, preheat oven to 375 degrees. Layer one-half of the rigatoni mixture into a 9-inch by 12-inch dish. Cover with 1/2 of the combined cheese. Put remaining rigatoni mixture on top of this, and then layer with the remaining combined cheese. Add remaining bacon on top and drizzle with milk right before cooking.
Cook for approximately 1 hour. I usually put foil over top about half way through cooking.
Garnish with chili powder.