Switched out the z-buffer for painter's algorithm (using an incircle triangle filler). Still uses BSP for sorting though because it's performance is amazing.
Still needs optimization.