I am not good in explanations. But look in to pictures to understand what I am saying.
Edit:
When the boss is defeated, it falls apart. If it is facing left, it falls apart properly. However, if it is facing the other way, the pieces still fall as if it was facing the other way. This behaviour is obviously wrong. The following code checks which way he is facing, and properly calls for the right routine so that he falls apart properly!
Thanks to Irixion for better explanation:
Using Sonic 2 Delta for comparisons.
(All codes translated to use with Xenowhirl, 2007 version.)

ARZ Boss:
Find:
loc_30850: cmpi.w #$78,($FFFFF75C).w bgt.s return_3088A subi.w #1,y_radius(a0) ; <---------- move.l objoff_3A(a0),d0 move.w objoff_2E(a0),d1
Make the following changes:
loc_30850: cmpi.w #$78,($FFFFF75C).w bgt.s return_3088A bsr NGHz_Boss_Fix_EjectHammer ; subi.w #1,y_radius(a0) ; <---------- move.l objoff_3A(a0),d0 move.w objoff_2E(a0),d1 .... return_3088A: rts ;=============================================================================== NGHz_Boss_Fix_EjectHammer: ; Esrael L. G. Neto Rotina para corrigir o bug ao ejetar o martelo btst #$00, $0001(A0) bne.s NGHz_Boss_Fix_EjectHammer_Mirror subi.w #$0001, $0016(A0) ; Ejeta o Martelo rts NGHz_Boss_Fix_EjectHammer_Mirror: addi.w #$0001, $0016(A0) ; Ejeta o Martelo rts ;===============================================================================

MCz Boss
Find:
loc_31358: cmpi.w #$78,($FFFFF75C).w bgt.s return_313C4 subi.w #1,status(a0) <------------ .... loc_31392: addi.w #1,x_vel(a0) <------------ move.l objoff_34(a0),d0
Make the following changes:
loc_31358: cmpi.w #$78,($FFFFF75C).w bgt.s return_313C4 bsr MCz_Boss_Fix_EjectDrill ; subi.w #1,status(a0) <------------ .... loc_31392: bsr MCz_Boss_Fix_EjectDrill ; addi.w #1,x_vel(a0) <------------ move.l objoff_34(a0),d0 ...... return_313C4: rts ;=============================================================================== MCz_Boss_Fix_EjectDrill: ; Esrael L. G. Neto Rotina para corrigir o bug ao ejetar as blocas btst #$00, $0001(A0) bne.s MCz_Boss_Fix_EjectDrill_Mirror addi.w #$0001, $0010(A0) ; Ejeta a bloca da frente da Nave subi.w #$0001, $0022(A0) ; Ejeta a bloca de trás da Nave rts MCz_Boss_Fix_EjectDrill_Mirror: subi.w #$0001, $0010(A0) ; Ejeta a bloca da frente da Nave addi.w #$0001, $0022(A0) ; Ejeta a bloca de trás da Nave rts ;===============================================================================

CNz Boss
Find:
loc_31EAE: cmpi.w #$78,($FFFFF75C).w bgt.s return_31F22 subi.w #1,status(a0) ; <------------------ move.l objoff_3A(a0),d0 .... loc_31EE8: cmpi.w #$3C,($FFFFF75C).w bgt.s return_31F22 addi.w #1,x_vel(a0) ; <-------------- move.l objoff_34(a0),d0
Make the following changes:
loc_31EAE: cmpi.w #$78,($FFFFF75C).w bgt.s return_31F22 bsr.s Obj51_Fix_Eject_Left_Catcher ; subi.w #1,status(a0) ; <------------------ move.l objoff_3A(a0),d0 .... loc_31EE8: cmpi.w #$3C,($FFFFF75C).w bgt.s return_31F22 bsr.s Obj51_Fix_Eject_Right_Catcher ; addi.w #1,x_vel(a0) ; <-------------- move.l objoff_34(a0),d0 ..... return_31F22: rts ;=============================================================================== ; Eject Catcher Fix Added by Esrael L. G. Neto ; [ Begin ] ;=============================================================================== Obj51_Fix_Eject_Left_Catcher: btst #$00, $0001(A0) bne.s Obj51_Eject_Left_Catcher_Mirror subi.w #$0001, $0022(a0) ; Eject Left Catcher From Ship rts Obj51_Eject_Left_Catcher_Mirror: addi.w #$0001, $0022(a0) ; Eject Left Catcher From Ship rts Obj51_Fix_Eject_Right_Catcher: btst #$00, $0001(A0) bne.s Obj51_Eject_Right_Catcher_Mirror addi.w #$0001, $0010(A0) ; Eject Right Catcher From Ship rts Obj51_Eject_Right_Catcher_Mirror: subi.w #$0001, $0010(A0) ; Eject Right Catcher From Ship rts ;=============================================================================== ; Eject Catcher Fix Added by Esrael L. G. Neto ; [ End ] ;===============================================================================
Debug Crash if you try placing an object after you death the game will Crash
In debug routine find this block:
loc_41C12: btst #5,(Ctrl_1_Press).w beq.s loc_41C56 jsr (SingleObjLoad).l
And insert the following code:
loc_41C12: btst #5,(Ctrl_1_Press).w beq.s loc_41C56 ;---------------------------------------------------- ; Debug crash fix ; Neto - Sonic 2D cmpi.b #$06, ($FFFFB024).w bne.s Player_Ok rts Player_Ok: ;--------------------------------------------------- jsr (SingleObjLoad).l
Edit: asm tags