Since then I could not hard that we have the PublishingSite.GetPageLayouts in the SharePoint OM but I had to scratch my head a little bit for the second one though.
The first requirement was not too hard to accomplish, we have the PublishingSite.GetPageLayouts in the SharePoint OM, but I had to scratch my head a little bit for the second one though.