Preheat oven to 350°.
Heat oil in a large Dutch oven over medium-high heat. Add onion; reduce heat to medium-low. Cover and cook 10 minutes or until golden brown, stirring occasionally. Add eggplant and next 6 ingredients (through garlic); cover and cook 10 minutes or until tender, stirring occasionally. Increase heat to medium-high. Add tomatoes; cook, uncovered, 15 minutes or until liquid almost evaporates, stirring occasionally. Remove from heat; cool slightly.
Combine milk, 1/4 cup cheese, eggs, and egg whites in a large bowl, stirring with a whisk. Stir in eggplant mixture. Add bread; stir gently to combine. Let stand 10 minutes. Spoon mixture into a 2-quart baking dish coated with cooking spray. Sprinkle pudding with the remaining 1/2 cup cheese. Bake at 350° for 45 minutes or until pudding is set and lightly browned.