A novel iterative physical optics (IPO) algorithm is proposed, for the analysis of scattering from large complex geometries involving multiple reflections and complex self-shadowing effects. The algorithm involves two types of nested iterations: reflection (bounce) iterations and self-shadowing iterations. At each bounce iteration, the physical optics sources induced on the surface of the scatterer produce a correction to the incident field, which in turn creates a correction to the physical optics sources. Each correction is evaluated to account for self-shadowing effects by a nested iterative evaluation of shadow-radiation integrals. The nested iterative formulation is naturally accelerable by using fast field evaluation methods, e.g., the multilevel non-uniform grid algorithm. The procedure's applicability to complex geometries is demonstrated numerically by comparison to numerically exact results and to standard PO results.