Index: wp-admin/css/nav-menus.css
===================================================================
--- wp-admin/css/nav-menus.css	(revision 38655)
+++ wp-admin/css/nav-menus.css	(working copy)
@@ -19,6 +19,17 @@
 	margin: 13px 0;
 }
 
+.quick-search-load-more {
+	display: block;
+	text-align: center;
+	padding: 5px 0;
+	cursor: pointer;
+}
+
+.quick-search-load-more.fetching {
+	cursor: progress;
+}
+
 #nav-menu-meta .accordion-section-content {
 	padding: 18px 13px;
 }
Index: wp-admin/includes/nav-menu.php
===================================================================
--- wp-admin/includes/nav-menu.php	(revision 38655)
+++ wp-admin/includes/nav-menu.php	(working copy)
@@ -25,6 +25,8 @@
 	$type = isset( $request['type'] ) ? $request['type'] : '';
 	$object_type = isset( $request['object_type'] ) ? $request['object_type'] : '';
 	$query = isset( $request['q'] ) ? $request['q'] : '';
+	$paged = isset( $request['paged'] ) ? intval( $request['paged'] ) : 1;
+	$posts_per_page = isset( $request['posts_per_page'] ) ? intval( $request['posts_per_page'] ) : 10;
 	$response_format = isset( $request['response-format'] ) && in_array( $request['response-format'], array( 'json', 'markup' ) ) ? $request['response-format'] : 'json';
 
 	if ( 'markup' == $response_format ) {
@@ -74,9 +76,10 @@
 				'no_found_rows'          => true,
 				'update_post_meta_cache' => false,
 				'update_post_term_cache' => false,
-				'posts_per_page'         => 10,
+				'posts_per_page'         => $posts_per_page,
 				'post_type'              => $matches[2],
 				's'                      => $query,
+				'paged'                  => $paged
 			) );
 			if ( ! $search_results_query->have_posts() ) {
 				return;
@@ -98,9 +101,12 @@
 				}
 			}
 		} elseif ( 'taxonomy' == $matches[1] ) {
+			$offset = $posts_per_page * ( $paged - 1 );
+
 			$terms = get_terms( $matches[2], array(
 				'name__like' => $query,
-				'number' => 10,
+				'number' => $posts_per_page,
+				'offset' => $offset
 			));
 			if ( empty( $terms ) || is_wp_error( $terms ) )
 				return;
@@ -460,6 +466,8 @@
 				<li><?php _e('No results found.'); ?></li>
 			<?php endif; ?>
 			</ul>
+
+			<a id="<?php echo $post_type_name; ?>-search-load-more" style="display: none;" class="quick-search-load-more" data-name="quick-search-posttype-<?php echo $post_type_name; ?>"><?php _e( 'Load More' ); ?></a>
 		</div><!-- /.tabs-panel -->
 
 		<div id="<?php echo $post_type_name; ?>-all" class="tabs-panel tabs-panel-view-all <?php
@@ -749,6 +757,8 @@
 				<li><?php _e('No results found.'); ?></li>
 			<?php endif; ?>
 			</ul>
+
+			<a id="<?php echo $taxonomy_name; ?>-search-load-more" style="display: none;" class="quick-search-load-more" data-name="quick-search-taxonomy-<?php echo $taxonomy_name; ?>"><?php _e( 'Load More' ); ?></a>
 		</div><!-- /.tabs-panel -->
 
 		<p class="button-controls wp-clearfix">
Index: wp-admin/js/nav-menu.js
===================================================================
--- wp-admin/js/nav-menu.js	(revision 38655)
+++ wp-admin/js/nav-menu.js	(working copy)
@@ -30,6 +30,7 @@
 		menusChanged : false,
 		isRTL: !! ( 'undefined' != typeof isRtl && isRtl ),
 		negateIfRTL: ( 'undefined' != typeof isRtl && isRtl ) ? -1 : 1,
+		currentPage: {},
 		lastSearch: '',
 
 		// Functions that run on init.
@@ -893,23 +894,35 @@
 			}).on( 'blur', function() {
 				api.lastSearch = '';
 			}).attr('autocomplete','off');
+
+			$( '.quick-search-load-more' ).on( 'click', function() {
+				$( this ).addClass( 'fetching' ).prop( 'disabled', true );
+				var $quickSearchInput = $( this ).siblings( '.quick-search-wrap' ).children( '.quick-search' );
+				api.updateQuickSearchResults( $quickSearchInput, true );
+			});
 		},
 
-		updateQuickSearchResults : function(input) {
+		updateQuickSearchResults : function( input, append ) {
 			var panel, params,
 				minSearchLength = 2,
 				q = input.val();
 
+			var append = 'undefined' !== typeof append ? append : false;
+
 			/*
 			 * Minimum characters for a search. Also avoid a new AJAX search when
 			 * the pressed key (e.g. arrows) doesn't change the searched term.
 			 */
-			if ( q.length < minSearchLength || api.lastSearch == q ) {
+			if ( ( q.length < minSearchLength || api.lastSearch == q ) && ! append ) {
 				return;
 			}
 
 			api.lastSearch = q;
 
+			if ( ! append ) {
+				api.currentPage[input.attr('name')] = 1;
+			}
+
 			panel = input.parents('.tabs-panel');
 			params = {
 				'action': 'menu-quick-search',
@@ -917,13 +930,14 @@
 				'menu': $('#menu').val(),
 				'menu-settings-column-nonce': $('#menu-settings-column-nonce').val(),
 				'q': q,
-				'type': input.attr('name')
+				'type': input.attr('name'),
+				'paged': api.currentPage[input.attr('name')]
 			};
 
 			$( '.spinner', panel ).addClass( 'is-active' );
 
 			$.post( ajaxurl, params, function(menuMarkup) {
-				api.processQuickSearchQueryResponse(menuMarkup, params, panel);
+				api.processQuickSearchQueryResponse(menuMarkup, params, panel, append);
 			});
 		},
 
@@ -1180,7 +1194,7 @@
 		 * @param object req The request arguments.
 		 * @param jQuery panel The tabs panel we're searching in.
 		 */
-		processQuickSearchQueryResponse : function(resp, req, panel) {
+		processQuickSearchQueryResponse : function( resp, req, panel, append ) {
 			var matched, newID,
 			takenIDs = {},
 			form = document.getElementById('nav-menu-meta'),
@@ -1188,8 +1202,15 @@
 			$items = $('<div>').html(resp).find('li'),
 			$item;
 
-			if( ! $items.length ) {
-				$('.categorychecklist', panel).html( '<li><p>' + navMenuL10n.noResultsFound + '</p></li>' );
+			var append = 'undefined' !== typeof append ? append : false;
+
+			if ( ! $items.length ) {
+				if ( append ) {
+					$( '.quick-search-load-more[data-name="'+ req.type +'"]' ).hide();
+				} else {
+					$('.categorychecklist', panel).html( '<li><p>' + navMenuL10n.noResultsFound + '</p></li>' );
+				}
+
 				$( '.spinner', panel ).removeClass( 'is-active' );
 				return;
 			}
@@ -1216,7 +1237,15 @@
 				}
 			});
 
-			$('.categorychecklist', panel).html( $items );
+			if ( append ) {
+				$( '.categorychecklist', panel ).append( $items );
+			} else {
+				$( '.quick-search-load-more[data-name="'+ req.type +'"]' ).show();
+				$( '.categorychecklist', panel ).html( $items );
+			}
+			
+			api.currentPage[req.type] += 1;
+			$( '.quick-search-load-more[data-name="'+ req.type +'"]' ).removeClass( 'fetching' ).prop( 'disabled', false );
 			$( '.spinner', panel ).removeClass( 'is-active' );
 		},
 
