rather than simulate physics on each brick:

each brick can determine the distance to the ground at level start or when they are created. then when they are sent flying they can switch from static to dynamic and follow a parabolic path (without using c_move) until they reach the predetermined ground level and then they once again become static