Panaskan oven pada suhu 190°C dan siapkan loyang ukuran 23 x 33 cm.
Didihkan air dalam panci besar dengan sedikit garam.
Masukkan 450 g makaroni siku, masak hingga al dente sesuai petunjuk pada kemasan, lalu tiriskan dan sisihkan.
Dalam panci sedang, lelehkan 115 g mentega tawar di atas api sedang.
Tambahkan 60 g tepung terigu serbaguna, aduk terus selama 1–2 menit hingga membentuk roux (campuran mentega dan tepung).
Tuang 960 ml susu full cream (UHT) sedikit demi sedikit sambil terus diaduk dengan whisk hingga saus halus dan tidak bergerindil.
Lanjutkan memasak sambil sering diaduk selama sekitar 5–7 menit hingga saus cukup kental untuk melapisi permukaan sendok.
Angkat panci dari api, masukkan 450 g keju cheddar parut dan 225 g keju mozzarella parut, aduk hingga keju meleleh dan tercampur rata.
Bumbui saus keju dengan 1 sendok teh garam, ½ sendok teh lada hitam bubuk, dan sejumput pala bubuk.
Tambahkan makaroni yang sudah ditiriskan ke dalam saus keju, aduk perlahan hingga semua makaroni terbalut saus.
Tuang campuran makaroni dan keju ke dalam loyang yang telah disiapkan.
Jika suka, taburkan 60 g tepung roti (opsional) secara merata di atasnya.
Panggang selama 25–30 menit, atau hingga bagian pinggir menggelembung dan bagian atas berwarna keemasan serta sedikit renyah.
Keluarkan dari oven, diamkan selama 5–10 menit sebelum disajikan.