Preheat the oven to 375 F. Set aside an 8x8 inch baking dish; I use a glass one and do not grease or line.
Add ground beef and salt to a high-sided skillet (I use a 10-inch nonstick pan with 3-inch-tall sides; smaller ones won’t be able to fit the raw mushrooms). Place over high heat, constantly breaking apart the meat as it cooks until it is crumbled, browned, and releasing liquid, a few minutes. Keep everything in the pan for the next step.
Add mushrooms and garlic. Cook until the mushrooms are significantly shrunken and most of their released juices have evaporated, 6 to 8 minutes, stirring occasionally. The only liquid remaining should be the grease from the meat.
Transfer the beef-mushroom-garlic mixture to the baking dish, using a slotted spoon if you prefer to leave behind any grease pooling at the bottom of the skillet.
Add goat cheese and two-thirds of the swiss cheese to the baking dish, carefully stirring directly in the dish until well-mixed with the beef and mushrooms. The goat cheese should melt quickly and nicely coat the other ingredients. See below section called "Fun Flavor Additions" for ideas on other things you can add.
Evenly sprinkle scallions over everything, then distribute remaining one-third of swiss cheese on top. Arrange the surface a bit so it’s flattened and even.
Transfer the baking dish to the oven. Bake for about 15 minutes; it’s done when the casserole is very hot, bubbling up the sides, and the swiss cheese is completely melted.
Let it rest for about 5 minutes before cutting into 4 squares. Serve immediately while hot.
Leftovers: Cover tightly with foil and refrigerate for up to 3 days. Reheat covered in a 350 F oven until very hot, 15 to 20 minutes. This casserole tastes better when it’s hot rather than just warmed through.