Preheat oven to 400°F. Butter 9×13-inch baking dish. Set large pot of water over high heat, cover and bring to boil.
In large skillet, melt 3 tablespoons butter over medium-high heat. Add mushrooms and shallot; sauté, stirring occasionally, until mushrooms have cooked down and are browned, 8 to 10 minutes. Season with salt and pepper. Add vinegar and cook, stirring, until liquid has cooked off. Remove from heat and set aside.
For béchamel sauce, in medium-sized saucepan, melt 4 tablespoons butter over medium heat. Once butter has melted, whisk in flour and cook for about 30 seconds, whisking constantly. Add herbs and, still whisking, sauté for additional 30 seconds. Slowly whisk in milk. Bring sauce to come to simmer.
Meanwhile, add pasta to pot of boiling water and cook to al dente.
Once béchamel sauce simmers, stir in 1 cup each swiss and cheddar until completely melted. Season with salt and pepper. Remove from heat.
Melt remaining 4 tablespoons butter. In small bowl, mix melted butter with breadcrumbs. Drain pasta. In large mixing bowl, toss pasta, sauce, and mushrooms. Pour into baking dish.
Sprinkle with remaining cheese. Sprinkle breadcrumb mixture over cheese. Bake 15- 20 minutes, until browned and bubbly. Let sit for 5-10 minutes before serving.