pre_get_posts with multiple queries

You need to have two queries, one handling the listings, the other handling the map.

Since you need pagination for the listings, I’d suggest you use pre_get_posts for that query, so that you can use WordPress’ default pagination out of the box.

For the map, create a new WP_Query in your archive template:

$args = array(
    'posts_per_page' => 999,
    'post_type' => 'listing',
);

$map = new WP_Query( $args );