WordPress Picks Up Wrong Template for Custom Post Type Archive Page

You can manage this via the template_include hook.

add_filter( 'template_include', 'cats_and_dogs_living_together', 99 );

function cats_and_dogs_living_together( $template ) {

    if ( is_post_type_archive( array ( 'cat', 'dog' ) ) ) {
        $new_template = locate_template( array( 'archive-dog.php' ) );
        if ( '' != $new_template ) {
            return $new_template;
        }
    }
    return $template;
}

Hope this helps!