Add the pasta to a large pot of boiling, salted water. Stir well and cook for a minute less than the package instructs. When done, drain and set aside.
Meanwhile, cook the bacon until very crispy in a pan. Remove the bacon from the pan. Once cooled, add the bacon to a food processor. Pulse until small crumbs form.
Add the shallots to the pan and sweat over medium low heat for 4 minutes. Add the garlic, salt and pepper, and cook for just 1 more minute.
Add the butter and let it melt. Whisk in the flour. Cook for about 30 seconds.
Slowly pour in the heated milk in a few additions, whisking constantly to incorporate.
Whisk in the Dijon mustard.
Bring the mixture to a simmer, reduce the heat to low, and cook for about 6 minutes until slightly thickened, stirring often. Stir in the cheddar until smooth. Turn the heat to low. Add the spinach and let it wilt.
Add the pasta to the sauce. Stir well to combine. Taste and adjust for seasoning.
Serve the mac and cheese with a sprinkle of bacon breadcrumbs and chives on top.