How to set an alternate posts_per_page value for default queries in different templates

Use the pre_get_posts action to modify query parameters before the queries are run. You can use many of the Conditional Tags to target specific types of pages.

function wpd_alter_posts_per_page( $query ) {
    // don't alter admin or custom queries
    if ( is_admin() || ! $query->is_main_query() )
        return;

    // if this is your-custom-tax archive
    if ( is_tax( 'your-custom-tax' ) ) {
        $query->set( 'posts_per_page', 20 );
        return;
    }
}
add_action( 'pre_get_posts', 'wpd_alter_posts_per_page' );