Basic Info on all the databases on the Instance

The below query returns some basic and must known information about all the databases on the instance. It works on versions 2005 and above.
select name,A.Dbsize_MB,
case when databasepropertyex(name,'isautoshrink') =1 then 'Auto Shrink' else 'No Auto Shrink' end as [AutoShrink],
case when databasepropertyex(name,'IsTornPageDetectionEnabled') =1 then 'Page Verify' Else 'No Page Verify' end as [TornPageDetection],
case when databasepropertyex(name,'IsAutoClose') =1 then 'Auto Close' Else 'No Auto Close' end as [AutoClose],
databasepropertyex(name,'status') as [DBStatus],
databasepropertyex(name,'recovery') as [RecoveryMode],
databasepropertyex(name,'UserAccess')as [User_Acess],
databasepropertyex(name,'Updateability') as [Updatebility],
databasepropertyex(name,'IsAutoCreateStatistics') as [AutoCreateStatistics],
databasepropertyex(name,'IsAutoUpdateStatistics') as [AutoUpdateStatistics],
databasepropertyex(name,'isPublished') as [Replication_Publisher],
databasepropertyex(name,'isPublished') as [Replication_Subscriber]
from master.dbo.sysdatabases INNER JOIN
(select (cast(sum(size) as float))*8/1024 as [DBsize_MB],db_name(database_id) as DbName
from sys.master_files group by database_id) A on A.DbName=Name
where name not in ('TempDB')
order by A.DbSize_MB