I'd like to answer to your second question, maybe you'll change your idea of dropping not mapped logins.
here I would like to check if the login has any database users in
other databases and if not drop login USE [master] GO DROP LOGIN
This approach can grant access to some login, in contrary as you think.
In many organizations Windows groups ...
use this query:
IF OBJECT_ID(N'tempdb..#results', 'U') IS NOT NULL
DROP TABLE #results;
CREATE TABLE #results(
,DatabaseName sysname NULL
,DatabaseUserName sysname NULL
,DatabaseRoleName sysname NULL
EXEC sp_MSforeachdb '
INSERT INTO #results