wow, 2hour crosschecks is gonna hurt!. Not sure how much help i can be on this one (maybe not much as you have the 12month retention of archivelogs there); anyway, we only use crossheck on backups where we manually delete archivelogs outside of RMAN (on our test systems mainly); ie we never use crosscheck on backups that don't require manual deletion of archivelogs (by us outside of RMAN deleting them) (plus our archivelogs are only kept up to a month as any Oracle databases older than that are apparently of no use to the business).
Anyway, doubt if this will help but this is how we use crosscheck -
run {
allocate channel t1 type 'sbt_tape';
allocate channel t2 type 'sbt_tape';
allocate channel t3 type 'sbt_tape';
resync catalog;
change archivelog all crosscheck;
# Backup the Database, control file, archivelogs, then delete 1 copy of archive logs.
backup full database plus archivelog delete input;
release channel t1;
release channel t2;
release channel t3;
}
Rich