Fugly but try this quick & dirty stab ...
(defun c:dump-xref-shat ( / cmdecho data flags name names f d e )
(setq cmdecho (getvar 'cmdecho))
(setvar 'cmdecho 0)
(while (setq data (tblnext "block" (null data)))
(and
(eq 4 (logand 4 (setq flags (cdr (assoc 70 (setq data (entget (tblobjname "block" (cdr (assoc 2 data))))))))))
(zerop (logand 32 flags))
(wcmatch (setq name (cdr (assoc 2 data))) "~*|*")
(progn
(foreach p (entget (cdr (assoc 330 data)))
(if (eq 331 (car p))
(progn
(entmod
(subst
(cons
70
(logand
(~ 4)
(cdr
(setq f
(assoc
70
(setq d
(entget
(tblobjname
"layer"
(cdr
(assoc 8
(entget
(setq e (cdr p))
)
)
)
)
)
)
)
)
)
)
)
f
d
)
)
(entdel e)
)
)
)
(setq names (cons name names))
)
)
)
(foreach name names (command ".xref" "_detach" name))
(setvar 'cmdecho cmdecho)
(princ)
)
Cheers.