Coarsely chop ham. (You should have 1 ½ cups.) Heat 1 tablespoon of the oil in a large skillet over medium. Add ham; cook, stirring occasionally, until fat is rendered, about 4 minutes. Using a slotted spoon, transfer ham to a large bowl, reserving drippings in skillet. Add remaining 1 tablespoon oil to skillet.
Stir in onions. Cook, stirring occasionally, until deeply browned, about 30 minutes. Add spinach; cook, stirring often, until wilted, 1 to 2 minutes. Transfer onion mixture to bowl with ham; let cool 10 minutes.
Whisk together eggs, milk, mustard, salt, and pepper.
Add egg mixture and 1 cup of the cheese to bowl with onion mixture, and stir to combine. Arrange croissants, slightly overlapping, in 2 rows in a lightly greased 11- x 7-inch baking dish. Pour mixture over croissants. Sprinkle with remaining ½ cup cheese.
Cover with aluminum foil, and chill 8 hours or up to overnight.
Preheat oven to 375°F. Uncover casserole, and place on a large rimmed baking sheet. Bake in preheated oven until golden brown and center is set, about 1 hour. Shield with foil after 25 minutes, if needed to prevent excess browning.
