Thanks for considering this tricky problem.
I think that yours is kind of the other way around (i.e. usually the MPEC is an optimization with the nested problem written as FOCs complementarity conditions). I believe the optimization crew might call the generalization of this stuff EMP?
Yes, this is the MPEC. Actually, I have tried bilevel reformulations and used GAMS and AMPL/KNITRO with/without calling EMP options so far. Then, the model became a nonlinear optimization problem with many constraints and locally found a unique real-valued solution in some cases from any starting value for both solvers. So, the reformulation was correct. However, I found that the outer objective value evaluated at their fixed point solution was not zero so it is not a fixed point, particularly the inner linear programming problem at their fixed point solution generated a different integer solution not real-valued one. It implies that the procedure is not adequate for finding a fixed point solution in my case.
This is the reason why I want to solve this tricky problem ``jointly" in Julia, which is easy to implement flexible combinations of many useful commercial solvers.