With:
(dictremove (namedobjdict) "AEC_DISPLAY_PROPS_DEFAULTS")
(vl-Catch-All-Apply '(lambda () (vla-Remove (vla-GetExtensionDictionary (vla-Get-Layers (vla-get-ActiveDocument (vlax-get-Acad-Object)))) "ACAD_LAYERSTATES")))
Purge and you go on about 900Kb
But the best result is:
(defun C:ALE_Fix_Clean ( / FilNam)
(setq FilNam (strcat (getvar "DWGPREFIX") "Clean_" (getvar "DWGNAME")))
(if (findfile FilNam)
(command "_.QSAVE" "_.WBLOCK" FilNam "_Y" "*")
(command "_.QSAVE" "_.WBLOCK" FilNam "*")
)
)
(C:ALE_Fix_Clean)